VS+Qt应用开发-第一个Qt程序

  • 建立Qt GUI项目
  • 项目文件说明
  • 功能实现



本系列主要介绍使用VS和Qt进行界面开发的步骤及知识点,VS版本是2013,Qt版本是5.9.0,软件的安装及配置可以参考我的其他文章。本文从第一个Qt程序入手,先对使用Qt开发界面步骤做一个简单的介绍,实现弹出一个对话框,并在对话框中显示文本“Hello world”。

建立Qt GUI项目

  1. 打开VS2013,首先新建一个项目,可以使用菜单栏的文件->新建->项目,也可以使用快捷键:Ctrl + Shift + N

  2. 在弹出的新建项目对话框中选择Visual C++ ->Qt->Qt GUI Application,输入自定义的项目名称,选择项目位置后,单击“确定”
  3. 弹出项目的向导,单击“Next”
  4. 选择项目中用到的模块,Core、GUI和Widgets模块是默认勾选的,如果程序无需特殊功能(如串口通信等),可以不需要选择其他模块,单击“Next”
  5. 确认类名、文件名和基类等,其中基类有三种:QMainWindow、QWidget和QDialog,简单来说:
  • QWidget是所有用户界面对象的基类,QMainWindow和QDialog都继承于QWidget;
  • QDialog是各种对话框窗口的基类,对话框主要用于短期的任务及交互,如选择文件对话框、提示对话框等;
  • QMainWindow是带有菜单栏、状态栏和工具栏的主窗口类;
    此处选择任何一个基类都可以,本文选择QMainWindow,然后单击“Finish”

项目文件说明

此时生成的文件在解决方案资源管理器中的视图如下:

qt软件转ios应用开发 用qt开发的软件_控件


  • MyQtDemo.ui:界面文件,双击可进入Qt Designer,进行界面编辑,后面会详细介绍;
  • MyQtDemo.h、MyQtDemo.h:MyQtDemo界面类的头文件及源文件;
  • main.cpp:包含main函数,程序的入口;
  • MyQtDemo.qrc:资源文件,双击可打开资源编辑器,主要用于设置图标,以后再介绍。

双击MyQtDemo.ui文件,打开Qt Designer,如下图所示

qt软件转ios应用开发 用qt开发的软件_qt_02

  • 控件区: 包括Qt本身的所有控件及自定义控件,可直接将控件拖到界面显示区;
  • 界面显示区: 显示当前界面的结果;
  • 布局方式: 对界面中的空间进行布局;
  • 对象查看器: 界面上所有的控件都对应一个对象,可以在对象查看中查看;
  • 属性编辑器: 当选中一个控件对象时,此处显示对象的属性,可以对属性进行修改;
  • 动作编辑器、信号/槽编辑器: 快速对动作、信号与槽进行操作;
    以上区域在后续文章涉及到时再详细介绍。

功能实现

  1. 在控件区找到Label,鼠标按下拖动至界面显示区松开;
  2. qt软件转ios应用开发 用qt开发的软件_c++_03


  3. 修改Label标签控件的显示文字,有三种方式:
  4. qt软件转ios应用开发 用qt开发的软件_qt软件转ios应用开发_04

  • 双击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");
}



  1. 使用上述任意一种方式进行修改,在Qt Design中一定要进行保存,使用保存按钮或Ctrl + S,回到VS中,按F5编译并运行程序,显示界面如下:

  2. 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();
  • 进入应用程序的事件循环,可用于接收键盘、鼠标等事件。