Qt是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,也可以开发不带界面的命令行(Command User Interface,CUI)程序。Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。
QT学习资料:http://c.biancheng.net/view/1792.html
main.cpp、xxx.cpp、xxx.h、xxx.ui、项目名称.pro,如下图所示:
点击Qt Creator左侧的“项目”按钮,可以设置构建目录,设置完成后,点击左下角的“构建”按钮,可以生成ui_xxx.h文件,该文件是根据窗体上的组件及其属性、信号与槽的关联等自动生成的一个类的定义文件。
一个工程(project)中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。所以,Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建哪些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。
.pro就是工程文件(project),存储项目设置,它是qmake自动生成的用于生产makefile的配置文件。注释从“#”开始,到这一行结束。
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
TEMPLATE =app #模板,生成应用程序的makefile,模板变量告诉qmake为这个应用程序生成哪种makefile
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
1.“Qt += core gui”:表示项目中加入 core gui 模块。core gui 是 Qt 用于 GUI 设计的类库模块,如果创建的是控制台(Console)应用程序,就不需要添加 core gui。Qt 类库以模块的形式组织各种功能的类,根据项目涉及的功能需求,在项目中添加适当的类库模块支持。例如,如果项目中使用到了涉及数据库操作的类就需要用到 sql 模块,在 pro 文件中需要增加如下一行:Qt +=sql
2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = app
3.“greaterThan(QT_MAJOR_VERSION, 4): QT += widgets”:条件执行语句,表示当 Qt 主版本大于 4 时,才加入 widgets 模块;
4.SOURCES、HEADERS、FORMS 记录了项目中包含的源程序文件、头文件和窗体文件(.ui 文件)的名称。这些文件列表是 Qt Creator 自动添加到项目管理文件里面的,用户不需要手动修改。当添加一个文件到项目,或从项目里删除一个文件时,项目管理文件里的条目会自动修改。
#include "widget.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);//应用程序对象,有且仅有一个
Widget w;//窗口对象,父类:Qwidget
w.show();//窗口对象默认不会显示
return a.exec();//让应用程序对象进入消息循环(一直捕捉用户行为)
}
1.每一个组件都有objectName属性,表示组件的对象名称,界面上的每个组件都需要一个唯一的对象名称,以便被引用。
2.在设计窗口的上方有一个工具栏,用于调整设计器进入不同的状态,以及进行布局设计:
按钮及快捷键 | 功能 |
---|---|
Edit Widget (F3) | 界面设计进入编辑状态,就是正常的设计状态 |
Edit Signals/Slots(F4) | 进入信号与槽的可视化设计状态 |
Edit Buddies | 进入伙伴关系编辑状态,可以设置一个Label 与一个组件成为伙伴关系 |
Edit Tab Order | 进入Tab 顺序编辑状态,Tab 顺序是在键盘上按Tab 键时,输入焦点在界面各组件之间跳动的顺序 |
Lay Out Horizontally (Ctrl+H) | 将窗体上所选组件水平布局 |
Lay Out Vertically (Ctrl+L) | 将窗体上所选组件垂直布局 |
Lay Out Horizontally in Splitter | 将窗体上所选组件用一个分割条进行水平分割布局 |
Lay Out Vertically in Splitter | 将窗体上所选组件用一个分割条进行垂直分割布局 |
Lay Out in a Form Layout | 将窗体上所选组件按窗体布局 |
Lay Out in a Grid | 将窗体上所选组件网格布局 |
Break Layout | 解除窗体上所选组件的布局,也就是打散现有的布局 |
Adjust Size(Ctrl+J) | 自动调整所选组件的大小 |
通过VS“工具”->"扩展和更新",安装Qt Visual Studio Tools,创建Qt Widgets Application项目。
main.cpp、项目名称.cpp、项目名称.h、项目名称.ui、项目名称.qrc,如下图所示。双击.ui文件,将通过Qt Designer开的该文件。