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博客

相关推荐
端平入洛16 小时前
delete又未完全delete
c++
端平入洛2 天前
auto有时不auto
c++
哇哈哈20213 天前
信号量和信号
linux·c++
多恩Stone3 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
蜡笔小马3 天前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost
超级大福宝3 天前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
weiabc3 天前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异
数据结构·c++·算法
问好眼3 天前
《算法竞赛进阶指南》0x01 位运算-3.64位整数乘法
c++·算法·位运算·信息学奥赛
yyjtx3 天前
DHU上机打卡D31
开发语言·c++·算法
czxyvX3 天前
020-C++之unordered容器
数据结构·c++