Qt 学习笔记

Qt中的.ui文件

Qt开发中,既可以手动通过代码的方式构建Qt桌面应用,也可以通过图形化窗口拖放设计界面,而后者主要通过.ui文件来实现。

Qt在编译时,会自动检测项目中的.ui文件,并对其转换成源代码文件,一般情况下,C++开发环境下的widgets.ui文件会被转换成ui_widgets.hui_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-makemingw32-make install命令时总是出错。如果有成功编译的同学看到了,希望能在评论区留下教程。

Qt 文档