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

相关推荐
仰泳的熊猫2 小时前
题目1431:蓝桥杯2014年第五届真题-分糖果
数据结构·c++·算法·蓝桥杯
wanderist.2 小时前
蓝桥杯中的日期问题
c++·蓝桥杯
清酒难咽10 小时前
算法案例之递归
c++·经验分享·算法
z203483152011 小时前
C++对象布局
开发语言·c++
张张努力变强11 小时前
C++ Date日期类的设计与实现全解析
java·开发语言·c++·算法
沉默-_-12 小时前
力扣hot100滑动窗口(C++)
数据结构·c++·学习·算法·滑动窗口
斐夷所非12 小时前
C++ 继承、多态与类型转换 | 函数重载 / 隐藏 / 覆盖实现与基派生类指针转换
c++
gfdhy13 小时前
【C++实战】多态版商品库存管理系统:从设计到实现,吃透面向对象核心
开发语言·数据库·c++·microsoft·毕业设计·毕设
清酒难咽13 小时前
算法案例之分治法
c++·经验分享·算法