Qt中的.ui文件 #
Qt开发中,既可以手动通过代码的方式构建Qt桌面应用,也可以通过图形化窗口拖放设计界面,而后者主要通过.ui文件来实现。
Qt在编译时,会自动检测项目中的.ui文件,并对其转换成源代码文件,一般情况下,C++开发环境下的widgets.ui
文件会被转换成ui_widgets.h
和ui_widgets.cpp
,这两个文件可以直接编译成我们需要的应用,默认情况下不会直接编译这两个文件,而是将其包含进我们自己写的类文件里面,通过指针的方式,实现两个类(.ui文件自动生成的类和我们自己编写的类)组合成一个完整的类,最终编译成一个完整的应用。
Qt中的信号响应: #
Qt使用信号(SIGNAL)与槽(SLOT)来建立事件的响应机制。因为有了信号(SIGNAL)与槽(SLOT)的编程机制,在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。信号就是在特定情况下被发射的事件,槽就是对信号响应的函数。信号(SIGNAL)与槽(SLOT)关联是用 QObject::connect() 函数实现的,其基本格式是:
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
通过上述函数就可以将signal()函数与slot函数相关联,这里要注意的是slot函数在类定义时需要在函数修饰符后加入slots标记。如private slots:
。通过上述connect
函数就可以实现当signal()
函数被调用时,slot()
收到响应并执行。
Qt GUI项目下隐藏控制台 #
Qt的GUI项目在windows平台下运行时总是弹出控制台
然后我想到了将以下命令加到CMakeLists.txt里面来实现隐藏控制台的效果
IF (CMAKE_SYSTEM_NAME MATCHES "Windows")
set( CMAKE_EXE_LINKER_FLAGS -Wl,-subsystem,windows)
ENDIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
Qt 杂谈 #
Qt官方好像是为了更好的推广Qt,最新的5.15版本不在提供离线安装版本,必须去官网注册安装,不过源代码任然提供下载。
我下载了Qt 5.15的源代码,不过不知道为什么,在win10 2004上使用Qt的minGW进行编译一直编译出错,在执行mingw32-make
与mingw32-make install
命令时总是出错。如果有成功编译的同学看到了,希望能在评论区留下教程。
Qt 文档 #
- 一个超级棒的中文Qt文档 http://c.biancheng.net/qt/
- Qt官方文档 https://doc.qt.io/
- Qt官方下载站 http://download.qt.io/
- 清华Qt镜像站 https://mirrors.tuna.tsinghua.edu.cn/qt/