QT Creator应用程序开发——QT程序设计基本知识

简介: QT Creator应用程序开发——QT程序设计基本知识

一、Application模板介绍


在新建文件或项目时,Application模板内有以下几项:

1667133146526.jpg

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画布。


二、选择类信息


创建的窗口时,在基本类信息时,系统提供的基类有以下三种可以选择:

1667133176373.jpg

1、QMainWindow

主窗口类,具有主菜单栏、工具栏和状态栏,它类似于一般的应用程序的主窗口;

2、QWidget

为所有具有可视页面类的基类,选择QWidget创建的页面对各种页面组件都支持;

3、QDialog

对话框类,可建立一个基于对话框的页面。

1667133190407.jpg


三、Qt Widgets Application项目示例


我们创建一个Qt Widgets Application项目后左侧有个窗口,里面包含几个目录和文件,在QT中可以打开多个项目,但是只有一个活动项目,活动项目的名被粗体标黑,如下,这个项目的名称为“2-24”:

1667133200680.jpg

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文件时会显示源代码文件,如下:

1667133213180.jpg

或者可以点击下面的打开文档来打开相应的源代码文件:

1667133223960.jpg

当点击Form文件会显示窗体设计页面,如下:

1667133233456.jpg


(一).pro 项目管理文件


在QT中默认情况下,每个项目都含有一个与项目名称同名的项目管理文件,且每个项目至少包含一个.pro文件,用于存储与当前有关的配置信息,其中的信息告知编译器如何编译当前项目。

一个刚刚创建好的QT项目,其中的.pro文件并不是空的,而包含一些基本的配置信息,如下:

1667133245412.jpg

QT会自动修改该文件的内容,不过有时候也要手动修改,比如使用第三方库时,需要手动在.pro文件中修改。

.pro配置文件中常见的配置项如下:

1、QT

每个QT GUI项目中,都默认包含Core和GUI两个默认模块,前者包含QT GUI页面开发的核心模块,后者提供用于开发GUI应用程序所必要的一些类。

QT       += core gui

1667133266156.jpg

配置信息由三部分组成,如下图:

1667133278258.jpg

除了这两个默认的core gui模块之外,还有SQL(包含数据库相关的类)、Widgets(构建页面的所有控件类)、Multimedia(提供音频、视频等功能的类)等模块,若要使用这些模块,则需在.pro文件中进行修改,例如添加与数据库相关的类,如下代码:

QT       += sql//添加包含数据库相关的类

1667133297375.jpg


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页面文件,如下:

1667133332076.jpg

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页面文件,即可跳到页面设计,如下其中各框的用途如下:

1667133399374.jpg


相关文章
|
1月前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
38 8
C++ Qt开发:QTcpSocket网络通信组件
|
1月前
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
25 0
|
9天前
|
数据可视化 开发工具 C++
Qt Creator 界面
Qt Creator 界面
|
9天前
|
数据可视化 NoSQL 编译器
Qt Creator 新建项目
Qt Creator 新建项目
|
9天前
|
Windows
解决windows下Qt Creator显示界面过大的问题
解决windows下Qt Creator显示界面过大的问题
|
15天前
|
图形学 Python 容器
【PyQt5桌面应用开发】3.Qt Designer快速入门(控件详解)
【PyQt5桌面应用开发】3.Qt Designer快速入门(控件详解)
35 0
|
23天前
qt开发使用camera类获取摄像头信息并拍照保存
qt开发使用camera类获取摄像头信息并拍照保存
|
1月前
|
存储 缓存
【Qt 全局属性相关】 Qt 应用程序行为的全局属性 Qt::ApplicationAttribute枚举解析
【Qt 全局属性相关】 Qt 应用程序行为的全局属性 Qt::ApplicationAttribute枚举解析
19 0
|
1月前
|
监控 C++
C++ Qt开发:QProcess进程管理模块
Qt是一个跨平台的C++图形库,简化了窗体应用开发,支持通过拖放组件提升效率。本章节关注`QProcess`组件,它用于控制和管理进程,例如执行命令、运行可执行文件及与外部进程通信。`QProcess`提供多种方法如`start`、`waitForStarted`和`waitForFinished`等,实现启动、监控和交互。示例展示了如何使用`QProcess`获取系统进程和信息,通过`tasklist`和`systeminfo`命令,并将结果展示在`QTreeWidget`中。
28 0
C++ Qt开发:QProcess进程管理模块
|
1月前
|
编解码 开发者 UED
Qt布局实战:实现高效、美观的GUI应用程序
Qt布局实战:实现高效、美观的GUI应用程序
113 2

推荐镜像

更多