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

相关推荐
_Twink1e7 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen
dong_junshuai8 小时前
每天一个开源项目#87 fmt:24.5K Stars 的 C++ 格式化核心
c++·开源·github
大丑哥8 小时前
QT QML 中实现高亮功能
qt
雪的季节9 小时前
Multisim14.0的详细中文安装步骤【附安装包】
c++
Persistent的粽子!10 小时前
C++:类与对象(二)
开发语言·c++
蒸蒸yyyyzwd10 小时前
cpp 选手备战秋招学习笔记 day23
c++·求职招聘
.YM.Z11 小时前
C++ STL 容器深度剖析:vector 与 list 的模拟实现及对比
开发语言·c++·vector·list
小白不想画工图11 小时前
银河麒麟V10系统安装QT5.12
linux·开发语言·qt·银河麒麟
mengzhi啊12 小时前
QEventLoop loop配合loop.exec();替代while(1)。电脑cpu占用为0,使用while(1)cpu占用率100%
c++·qt
HugoStudio_SWAN12 小时前
洛谷 P1319 / P1320 压缩技术——同一枚硬币的正反面
c++·学习·程序人生·算法