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;指定要编译成的目标文件名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!