码迷,mamicode.com
首页 > 其他好文 > 详细

Qt Gui 第一章~第二章

时间:2020-02-09 16:21:19      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:运行程序   ogg   逻辑   com   解决方案   +=   执行   round   通过   

一、Qt启动

  qmake -project; 创建xxx.pro

  qmake xxx.pro; 生成makefile文件

  make;构建该程序,生成可执行文件

  运行程序:windows:xxx;mac:open xxx.app

 

二、Qt特性

  1、支持html文本的label;

  2、使用信号SIGNAL和槽SLOT;用了这两个的类都要继承QObject、在类的开头添加Q_OBJECT、signals里面的函数不用实现;SLOT函数的参数SIGNAL要一一对应,SIGNAL函数的参数个数可以比SLOT多,但是不能少;使用信号和槽连接用QObject::connect(); 连接的有:多个信号单个槽、单个信号多个槽、信号连接信号;如果不连接了可以用disconnect断开连接;手动发射信号通过emit关键字:emit signals_func(param1, param2...);

  3、UI文件;uic命令可以将xxx.ui文件生成对应的.h文件(mac 环境):uic gotocelldialog.ui -o ui_gotocelldialog.h   自动生成了对应的.h文件;当使用了对应的ui文件,则需要在构造函数添加对应的函数:setupUi(this); 并且继承ui_gotocelldialog.h 中对应的类,一般是namespace Ui 中的那个类,即:Ui::GotoCelldialog

    下面是Ui文件生成时的另一个特性

    技术图片

 

  

  4、UI文件;直接载入的方式;在qt4中,pro文件要添加CONFIG+=uitools,qt5则添加QT+=uitools;

//Qt4的头文件
//#include<QtUiTools/QUiLoader>

//qt5的头文件
#include <QtUiTools>


    QUiLoader uiLoader;
    QFile file("sortdialog.ui");
    QWidget* sortDialog = uiLoader.load(&file);

    文件载入方式可以不用修改代码地更新界面等;但是需要逻辑比较复杂的则比较难以实现

 

三、点滴知识

  triggered()和toggled(bool)的区别:triggered是指被触发了的事件,比如按钮被点击了(pushdown和pushup,并不只是其中之一),总之一点就是本身固有特性被触发了; toggled则是有开关的意思;比如check按钮选中或者不选中;

  moc工具生成了Q_OBJECT要求QObject子类要实现的一些函数:metaObject(),tr(),qt_metacall(); 具体可以看文件列表中多生成的moc_predefs.h和moc_xxx.cpp;

 

 

问题及解决:

1、qt4的pro用qt5编译时显示:WARNING: TARGET is empty; 解决方案:在pro文件中添加:TARGET = sort1;指定要编译成的目标文件名

Qt Gui 第一章~第二章

标签:运行程序   ogg   逻辑   com   解决方案   +=   执行   round   通过   

原文地址:https://www.cnblogs.com/czwlinux/p/12287359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!