在Qt Creator中创建一个简单的图形界面应用程序
本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载,但需要注明原作者"海洋饼干叔
叔";本文不允许以纸质及电子出版为目的进行抄摘或改编。
1.《Python编程基础及应用》,陈波,刘慧君,高等教育出版社。免费授课视频 Python编程基础及应用
2.《Python编程基础及应用实验教程》, 陈波,熊心志,张全和,刘慧君,赵恒军,高等教育出版社Python编程基础及应用实验教程
3. 《简明C及C++语言教程》,陈波,待出版书稿。免费授课视频
本文演示在Qt Creator中创建一个简单的图形界面应用程序的过程。在开始工作之前,读者需要先安装好Qt开发环境及工具,具体方法请参考如下链接:
在Qt Creator中点击菜单项“文件 — 新建文件或项目”,软件将会显示如下图所示的对话框,选择Application(Qt)下的Qt Widgets Application(意为Qt窗口应用),然后点击Choose按钮。
在接下来的Project Location(项目位置)对话框中,选择合适的创建路径并输入如下图所示的名称,然后点击下一步。为了避免潜在的兼容性问题,作者建议无论是项目路径还是名称,均使用纯英文,且不要包含空格或除下画线外的其他符号。
在接下来的Define Build System(定义构建系统)对话框中,使用默认值qmake,直接点击下一步。
在接下来的Class Information(类信息)对话框中,将Base class(基类)调整为QWidget,然后点击下一步。QWidget是Qt中表示窗口的类型。
在接下来的Translation File(翻译文件)对话框中什么都不做,直接点击下一步。Qt使用一种特别的方式来完成软件的国际化,它通过独立于软件的翻译数据文件来配置软件的界面语言,如果载入法语翻译数据文件,软件的界面就是法语,同理,装入简体中文翻译数据文件,软件的界面语言就是简体中文。在本例中,我们用不到这种高级特性,读者对相关内容感兴趣,请用关键字“Qt Translator”进行互联网检索。
在接下来的Kit Selection(成套工具选择)对话框中,选择Desktop Qt 6.2.4 MinGW 64-bit,然后点击下一步。如果读者安装的Qt版本以及编译器与作者的不同,则上述Kit名称会有差异。
在接下来的Project Management(项目管理)对话框中什么都不做,直接点击完成按钮。
然后,如下图所示的名为SimpleGUI的项目被创建出来,可以看到,该项目由多个文件组成。按下图所示的代码修改main.cpp,然后点击左下角的运行按钮(绿色三角形)。
可复制的代码内容如下:
#include "widget.h"
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]){
QApplication a(argc, argv);
Widget w;
w.setGeometry(200,200,600,400);
w.setWindowTitle("GUI, Let's embrace the world!");
auto btnExit = new QPushButton("Exit",&w);
btnExit->resize(200,80);
btnExit->move(200,160);
btnExit->connect(btnExit,SIGNAL(released()),&a,SLOT(quit()));
w.show();
return a.exec();
}
如果程序录入正确,Qt Creator在编译构建完项目后将运行该程序,得到如下图所示的运行界面。这是一个真正的图形界面应用程序!它包含一个标题为“GUI,Let’s embrace the world!”的主窗口,主窗口中心有一个名为Exit的按钮,点击这个按钮,可见程序运行结束,窗口消失。
这个示例的代码很少,但却提供的丰富的特性:点击窗口右上角的最小化按钮,窗口将会隐藏起来,整个应用程序表现为任务栏上的一个图标,再次点击任务栏上的应用图标,窗口又会重新显现;点击窗口右上角的最大化按钮,窗口将会变大并覆盖整个桌面,此时最大化按钮变身为“向下还原”按钮,点击该按钮,窗口恢复原有尺寸;在窗口标题栏部分按下鼠标左键且不松开,然后移动鼠标,可以在桌面上拖曳窗口;将鼠标移至窗口边缘的恰当位置,待鼠标光标变成“左右键头”时按下鼠标左键且不松开,然后移动鼠标,可以改变窗口大小;将鼠标移至Exit按钮的上方,可以看到Exit按钮的颜色发生改变,意即该按钮获得“焦点”,此时按下鼠标左键将触发该按钮;点击窗口右上角的关闭按钮(X),窗口将被关闭,程序执行结束。
为了帮助更多的年轻朋友们学好编程,作者在B站上开了两门免费的网课,一门零基础讲Python,一门零基础C和C++一起学,拿走不谢!
如果你觉得纸质书看起来更顺手,目前Python有两本,C和C++在出版过程中。