Qt C++项目基础

目录

一、Qt框架的介绍

[二、Qt Creater系统的介绍](#二、Qt Creater系统的介绍)

三、创建一个Qt项目

四、Qt项目中的各个文件

​编辑

1.mainwindow.h

2.mainwindow.cpp

3.Main.cpp

4.项目名.pro

[5. ui文件](#5. ui文件)


一、Qt框架的介绍

Qt是一个跨平台的C++图形用户界面应用程序框架(框架≠软件) 。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

二、Qt Creater系统的介绍

接下来的项目都是基于Qt Creator 4.11.1版本进行的。

三、创建一个Qt项目

这里创建的项目是一个Qt窗口应用。

黄圈中是两种创建/打开项目的方式。

两种方式都能够看到下面的窗口界面。

点击"Qt Widget Application→Choose"就是Qt窗口应用程序。

接下来进行对应操作

设置类名

其中:

  • mainwindow.h用来声明类的接口、信号变量、信号、槽
  • mainwindow.cpp用来实现类中声明的成员函数和逻辑
  • mainwindow.ui用来实现Qt Designer的可视化设计

这里可以使用默认的"mainwindow"作为名称,也可以自行设置,但是要注意每一个file都要统一。

然后,语言选择默认的<None>

编译套件选择默认的即可

点击"完成"

下面就是创建成功的项目了。

四、Qt项目中的各个文件

构建完成的项目就是这样。这里面mainwindow这个名字是取决于前面的设置的。

里面的文件中,Header是头文件,用作函数的声明

1.mainwindow.h

文件内容如下:

cpp 复制代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
  1. "#ifndef ...":防止头文件重复定义的预处理指令,代码框架为"ifndef .... endif ...."。如果未定义该窗口的头文件,就执行define下面的语句,反之就执行endif下面的语句。
  2. c++引入类的语句引入了QMainWindow基类。
  3. 命名空间namespace:前向声明Ui命名空间中的基类MainWindow。
  4. 自定义主窗口类MainWindow继承自基类QMainWindow
  5. MainWindow类中公共权限的是带有默认参数(默认参数为父窗口空指针)的构造函数和无参析构函数;私有权限的是指向Ui::MainWindow的指针ui,其中包含了所有界面组件的定义与布局。

2.mainwindow.cpp

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;
}
  1. 调用基类都早函数,初始化QMainWindow对象,并动态创建Ui::MainWindow对象,用于管理UI控件。
  2. 通过调用setupUi加载Qt Designer设计的界面文件,this通常指的是mainwindow.ui
  3. 析构函数释放ui

3.Main.cpp

cpp 复制代码
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

是整个项目的主入口,w.show()函数是用来显示窗口的,a.exec()是用来保持窗口持续运行的。

4.项目名.pro

为项目的项目文件。

5. ui文件

这个是项目图形化创建和设计的核心文件了,点击Forms/mainwindow.ui,就进入到界面设置中,具体可以参考文章【qt 如何设计好布局和漂亮的界面。_qt界面设计-CSDN博客】

相关推荐
xier_ran14 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
jimy115 小时前
c++的 Type Traits (一)
开发语言·c++
别动我齐刘海16 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
ZZHow102417 小时前
Ascend C算子开发(高级)笔记
c++·人工智能·笔记·深度学习·华为云
aqiu11111117 小时前
【C++算法打怪专栏】LeetCode 217. 存在重复元素(解法总结)
c++·算法·leetcode
lojox18 小时前
深入理解 C++ STL:vector 底层实现、迭代器失效与 list 特性
开发语言·c++
扶尔魔ocy18 小时前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行并进行态势标绘(四)
qt·opengl·osg
微笑星河q19 小时前
C++类和对象(下)初始化列表、类型转换、static、友元、内部类、匿名对象
开发语言·c++
|_⊙19 小时前
C++ 类和对象零散知识点
开发语言·c++
xiangyun6119 小时前
C++ list 模拟实现(二):const迭代器与反向迭代器,模板的黑魔法
开发语言·数据库·c++·算法·stl·list