VS+Qt应用开发-第一个Qt程序
本系列主要介绍使用VS和Qt进行界面开发的步骤及知识点,VS版本是2013,Qt版本是5.9.0,软件的安装及配置可以参考我的其他文章。本文从第一个Qt程序入手,先对使用Qt开发界面步骤做一个简单的介绍,实现弹出一个对话框,并在对话框中显示文本“Hello world”。
建立Qt GUI项目
- 打开VS2013,首先新建一个项目,可以使用菜单栏的文件->新建->项目,也可以使用快捷键:Ctrl + Shift + N
- 在弹出的新建项目对话框中选择Visual C++ ->Qt->Qt GUI Application,输入自定义的项目名称,选择项目位置后,单击“确定”
- 弹出项目的向导,单击“Next”
- 选择项目中用到的模块,Core、GUI和Widgets模块是默认勾选的,如果程序无需特殊功能(如串口通信等),可以不需要选择其他模块,单击“Next”
- 确认类名、文件名和基类等,其中基类有三种:QMainWindow、QWidget和QDialog,简单来说:
- QWidget是所有用户界面对象的基类,QMainWindow和QDialog都继承于QWidget;
- QDialog是各种对话框窗口的基类,对话框主要用于短期的任务及交互,如选择文件对话框、提示对话框等;
- QMainWindow是带有菜单栏、状态栏和工具栏的主窗口类;
此处选择任何一个基类都可以,本文选择QMainWindow,然后单击“Finish”
项目文件说明
此时生成的文件在解决方案资源管理器中的视图如下:
- MyQtDemo.ui:界面文件,双击可进入Qt Designer,进行界面编辑,后面会详细介绍;
- MyQtDemo.h、MyQtDemo.h:MyQtDemo界面类的头文件及源文件;
- main.cpp:包含main函数,程序的入口;
- MyQtDemo.qrc:资源文件,双击可打开资源编辑器,主要用于设置图标,以后再介绍。
双击MyQtDemo.ui文件,打开Qt Designer,如下图所示
- 控件区: 包括Qt本身的所有控件及自定义控件,可直接将控件拖到界面显示区;
- 界面显示区: 显示当前界面的结果;
- 布局方式: 对界面中的空间进行布局;
- 对象查看器: 界面上所有的控件都对应一个对象,可以在对象查看中查看;
- 属性编辑器: 当选中一个控件对象时,此处显示对象的属性,可以对属性进行修改;
- 动作编辑器、信号/槽编辑器: 快速对动作、信号与槽进行操作;
以上区域在后续文章涉及到时再详细介绍。
功能实现
-
在控件区找到Label,鼠标按下拖动至界面显示区松开;
-
修改Label标签控件的显示文字,有三种方式:
- 双击Label控件显示的文本TextLabel,进入编辑模式,输入“Hello world”
- 鼠标选中界面中的Label控件,在属性编辑器中找到text属性,将属性值修改为“Hello world”
- 在代码中进行修改,进入MyQtDemo.cpp,在MyQtDemo的构造函数中加入设置文本的语句,MyQtDemo的构造函数如下:
MyQtDemo::MyQtDemo(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
ui.label->setText("Hello world");
}
- 使用上述任意一种方式进行修改,在Qt Design中一定要进行保存,使用保存按钮或Ctrl + S,回到VS中,按F5编译并运行程序,显示界面如下:
- main.cpp代码分析,main.cpp中的代码如下:
#include "MyQtDemo.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyQtDemo w;
w.show();
return a.exec();
}
QApplication a(argc, argv);`
- 应用程序对象,有且仅有一个;
MyQtDemo w;
- 窗口对象,此类即为新建项目时定义的窗口类,一个应用程序可以包含多个窗口;
w.show();
- 调用窗口对象的显示函数,将窗口显示出来;
return a.exec();
- 进入应用程序的事件循环,可用于接收键盘、鼠标等事件。