在Qt Creator中创建一个简单的图形界面应用程序

  本文演示在Qt Creator中创建一个简单的图形界面应用程序的过程。在开始工作之前,读者需要先安装好Qt开发环境及工具,具体方法请参考如下链接:

http://codelearn.club/2022/03/qt_onlineinstall_win/

版权声明

本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。

本文不可以以纸质出版为目的进行改编、摘抄。

  在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,然后点击左下角的运行按钮(绿色三角形)。

可复制的代码内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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),窗口将被关闭,程序执行结束。



本文内容节选自作者编著的《Python编程基础及应用》(高等教育出版社)一书。

Python编程基础及应用

免费随书B站MOOC: