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项目中,都默认包含CoreGUI两个默认模块,前者包含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
SORCESHEADERSFORMS分别指定项目中所包含的.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开发工具

qt creator和qt的区别

如果开发时需要,如何在 qt-creator 中调整设计器空间的大小?

QT Creator应用程序开发——01

Qt-Qt Creator的下载安装与配置(Windows)

QT Creator 快速入门教程 读书笔记