QT Creator应用程序开发——QT程序设计基本知识
Posted 晚风(●•σ )
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT Creator应用程序开发——QT程序设计基本知识相关的知识,希望对你有一定的参考价值。
目录
一、Application模板介绍
在新建文件或项目时,Application模板内有以下几项:
1、Qt Widgets Application
Qt小部件应用程序,它支持桌面平台有图形用户界面(GUI)的应用程序
,该GUI设计基于C++语言
,采用Qt提供的一套C++类库;
2、Qt Console Application
Qt 控制台应用程序,无GUI页面,用于学习C/C++语言
;
3、Qt Quick Application
Qt快速应用程序,是Qt支持的一套GUI开发架构
,页面设计采用QML语言,程序架构采用C++语言,它一般用于移动设备或嵌入式设备上无边框的应用程序设计
;
4、Qt Quick Controls 2 Application
基于Qt Quick Controls 2组件可部署的Qt Quick 2应用程序
;
5、Qt Canvas 3D Application
Qt画布3D应用程序,用于创建Qt Canvas 3D QML项目,基于QML语言的页面设计,支持3D画布
。
二、选择类信息
创建的窗口时,在基本类信息时,系统提供的基类有以下三种可以选择:
1、QMainWindow
主窗口类,具有主菜单栏、工具栏和状态栏,它类似于一般的应用程序的主窗口;
2、QWidget
为所有具有可视页面类的基类,选择QWidget创建的页面对各种页面组件都支持;
3、QDialog
对话框类,可建立一个基于对话框的页面。
三、Qt Widgets Application项目示例
我们创建一个Qt Widgets Application项目后左侧有个窗口,里面包含几个目录和文件,在QT中可以打开多个项目,但是只有一个活动项目,活动项目的名被粗体标黑,如下,这个项目的名称为“2-24”:
1、2-24.pro
代表这是一个pro 项目管理文件,其中包括一些对项目的设置项
;
2、Headers
.h 头文件,该节点包含所有的C++头文件,其中头文件mainwindow.h是主窗口类的头文件
;
3、Sources
.cpp 源文件,该节点包含所有的C++源文件,其中main.cpp是主函数文件
,是应用程序的入口,mainwindow.cpp是主窗口类的实现文件
,与mainwindow.h头文件相对应;
4、Forms
.ui 页面文件,该节点包含所有的页面文件,mainwindow.ui是主窗口的页面文件
,这些页面文件是文本文件,通过XML语言描述页面的组成。
当鼠标点击pro、Headers、Sources文件时会显示源代码文件,如下:
或者可以点击下面的打开文档来打开相应的源代码文件:
当点击Form文件会显示窗体设计页面,如下:
(一).pro 项目管理文件
在QT中默认情况下,每个项目都含有一个与项目名称同名的项目管理文件,且每个项目至少包含一个.pro文件,用于存储与当前有关的配置信息
,其中的信息告知编译器如何编译当前项目。
一个刚刚创建好的QT项目,其中的.pro文件并不是空的,而包含一些基本的配置信息,如下:
QT会自动修改该文件的内容,不过有时候也要手动修改,比如使用第三方库时,需要手动在.pro文件中修改。
.pro配置文件中常见的配置项如下:
1、QT
每个QT GUI项目中,都默认包含Core和GUI两个默认模块,前者包含QT GUI页面开发的核心模块
,后者提供用于开发GUI应用程序所必要的一些类
。
QT += core gui
配置信息由三部分组成,如下图:
除了这两个默认的core gui模块之外,还有SQL(包含数据库相关的类)、Widgets(构建页面的所有控件类)、Multimedia(提供音频、视频等功能的类)等模块,若要使用这些模块,则需在.pro文件中进行修改,例如添加与数据库相关的类,如下代码:
QT += sql//添加包含数据库相关的类
2、greaterThan()
QT版本大于4以上都包含widgets模块
,如下代码:
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
3、CONFIG
另外有的还包含C++标准
,例如下面就表示使用的是C++11标准,如下代码:
CONFIG += c++11//使用C++11的标准
4、TARGET、TEMPLATE
TARGET用于指定程序运行后的可执行文件
(.exe)的名称,TEMPLATE指定如何运行当前程序
,其默认值是app
(表示是一个应用程序),通常还有lib(表示将当前程序编译成库文件),如下代码,这里指定的可执行文件名称为untitled1:
TARGET = untitled1//目标 生成.exe程序的名称
TEMPLATE = app//模板 应用程序模板application
5、SORCES、HEADERS、FORMS
SORCES、HEADERS、FORMS分别指定项目中所包含的.cpp源文件、.h头文件、.ui页面文件,如下:
6、INCLUDEPATH
INCLUDEPATH用于指定.h头文件的存储路径
。
(二).h 头文件
mainwindow.h为主窗口,由Q_OBJECT宏、构造函数、析构函数三部分组成,Q_OBJECT表示允许类中使用信号和槽的机制,代码如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>//包含头文件QMainWindow窗口类
namespace Ui
class MainWindow;
class MainWindow : public QMainWindow//继承语法
Q_OBJECT//Q_OBJECT宏,是一个已经定义好的宏,\\
允许类中使用信号和槽的机制
public:
explicit MainWindow(QWidget *parent = 0);//带参的构造函数,QWidget是所有组件的基类,\\
通过*parent指针可以为当前窗口指定其父窗口
~MainWindow();//析构函数
private:
Ui::MainWindow *ui;
;
#endif // MAINWINDOW_H
(三).cpp 源文件
.cpp源文件中包含main().cpp主函数,一个QT GUI应用程序的main()基本格式,如下:
#include "mainwindow.h"
#include <QApplication>//包含一个应用程序类的头文件
//main程序入口
int main(int argc, char *argv[])//argc命令行变量的数量,\\
argv命令行变量的数组
QApplication a(argc, argv);//a应用程序对象,在QT中\\
应用程序对象有且只有一个
MainWindow w;//窗口对象
w.show();//窗口对象默认不会显示,必须要调用show方法显示窗口
return a.exec();//让应用程序对象a进入消息循环
另外还有一个从QMainWindow继承的主窗口类,即mainwindow.cpp,该类的定义部分位于mainwindow.h头文件中,实现部分位于mainwindow.cpp源文件,如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
ui->setupUi(this);
MainWindow::~MainWindow()
delete ui;
(四).ui 页面文件
点击.ui页面文件,即可跳到页面设计,如下其中各框的用途如下:
以上是关于QT Creator应用程序开发——QT程序设计基本知识的主要内容,如果未能解决你的问题,请参考以下文章
如果开发时需要,如何在 qt-creator 中调整设计器空间的大小?