Qt Gui 第一章~第二章
Posted czwlinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt Gui 第一章~第二章相关的知识,希望对你有一定的参考价值。
一、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 第一章~第二章的主要内容,如果未能解决你的问题,请参考以下文章
✿4-The Basics-Qt Quick and QML