qt中ui简单介绍

本文最后更新于:2022年3月19日 凌晨

qt ui区别:

  1. 无ui的mainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
};
#endif // MAINWINDOW_H
  1. 有ui的mainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
// 这个MainWindow和下边的MainWindow没有关系,在不同命名空间内。

    
class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::MainWindow *ui;// ui的指针
};
#endif // MAINWINDOW_H
  1. 无ui的mainWindow.cpp
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
}

MainWindow::~MainWindow()
{
}
  1. 有ui的mainWindow.cpp
    #include "mainwindow.h"
    #include "./ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)// 实例化ui指针
    {
        ui->setupUi(this);// 设置ui指针
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;// 删除ui指针
    }

qt的ui文件实质是xml文件:👇

qt的ui文件

  1. main.cpp
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;	// 实例化mainWindow.h中的类MainWindow
    w.show();		// 类MainWindow继承于QMainWindow,所以可以调用show()
    return a.exec();
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!