QT-第一个程序 Hello QT , 以及QT creator介绍
程序员文章站
2022-07-02 14:30:52
第一个程序 - Hello QT 首先写main.cpp: win平台上,命令行编译 进入main.cpp所在目录“1.Hello QT”,输入: 接下来,进入debug文件,运行1.exe: 如果想删除配置: linux平台上,命令行编译 同样输入: 运行: 3.使用Qt creator编译 注意 ......
第一个程序 - Hello QT
首先写main.cpp:
#include <QApplication> #include <QMainWindow> #include <QPushButton> int main(int argc, char* argv[]) { QApplication a(argc, argv); // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理
QMainWindow w; //定义一个QmainWindow主窗口对象w QPushButton b(&w); //通过&w,在主窗口上定义QpushButton按钮对象b
b.setText("Hello QT!"); //通过b对象的成员函数setText(),设置按钮名字为Hello QT w.show(); //显示主窗口
return a.exec(); //通过exec()执行程序以及消息处理 }
win平台上,命令行编译
进入main.cpp所在目录“1.Hello QT”,输入:
qmake -project //通过-project参数,将源码生成(*.pro)工程文件 qmake //根据工程文件生成makefile make //根据makefile进行编译,生成debug文件夹
接下来,进入debug文件,运行1.exe:
如果想删除配置:
make clean //删除配置文件,如果想再次编译,只需要make即可 make distclean //删除配置文件以及make,如果想再次编译,可以通过qmake和make
linux平台上,命令行编译
同样输入:
qmake -project //通过-project参数,将源码生成(*.pro)工程文件 qmake //根据工程文件生成makefile make //根据makefile进行编译,生成可执行文件
运行:
3.使用Qt creator编译
注意:构建项目时,如果出现以下问题,则可能环境变量未设置好,或者环境变量的qt路径前面有 “(” 或 “)” 字符,从而导致:Interrupt/Exception caught code = 0xc00000fd
调试
调试分为两种
打印调试
头文件 #include <QDebug>
比如打印5,代码里输入:
qDebug()<<5;
断点调试
除了设置普通断点外,还可以设置条件断点(指程序满足条件,将会暂停)
如下图所示,在第17行处设断点:
然后设置17行处的断点的条件为i==3:
开始调试
从打印处可以看到,代码运行到i=3时便暂停了:
QT creator介绍
构建(bulid)
对项目中所有文件进行编译,最终生成可执行程序
Debug版
用来进行调试的版本,程序中会包含调试信息,所以运行效率低
Release版
最终发布的版本,无调试信息,运行效率高
QT Creator工程介绍
.pro项目描述文件
其本质就是一个简化的Makefile,通过不同平台的qmake生成不同平台的Makefile,如下图所示:
.pro项目描述文件介绍
基本构成如下图所示:
高级变量如下图所示:
其中CONFIG的常用选项有:
- debug : 构建debug版本的可执行程序
- release : 构建release版本的可执行程序
- debug_and_release : 同时构建debug和release版本
- wran_on : 尽可能多的输出警告信息
- wran_off : 不输出警告信息
通过上面的学习,我们就能看懂下面的.pro项目描述文件了:
QT += core gui #添加core和gui模块(QT不仅只涉及显示模块,还有数据库,多线程,网络等等) greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #如果当前版本大于4.0,则需要widgets模块 TARGET = HelloWorld #以win平台为例,生成的程序为:HelloWorld.exe TEMPLATE = app #声明编译出来的是app程序,而不是库文件 INCLUDEPATH += E:/BCC/include \ #指定头文件路径 E:/VC/include SOURCES += Main.cpp \ #源文件 HelloWorld.cpp HEADERS += HelloWorld.h #头文件名 FORMS += HelloWorld.ui #指定界面描述文件 RC_FILE += MyIco.rc #指定资源文件,比如图片 LIBS += -LE:/vlc-1.11/sdk/lib #指定外部库 CONFIG += warn_on debug #构建debug版本,并输出警告信息 # # if 'debug' option is set for CONFIG # CONFIG(debug) { #如果CONFIG有debug选项 DEFINES += DEBUG_LOG #则定义: #define DEBUG_LOG SOURCES += DebugLog.cpp #并添加debug相关文件 HEADERS += DebugLog.h }
注意:
- QT Creator生成的.pro.user文件,包含的是与平台相关的配置信息,与我们无关,不需要修改该文件
- 移植项目时需要删除.pro.user这个文件,需要时,再由QT Creator自动生成即可
接下来,下章继续学习QT中的部件与坐标~