qt中ui简单介绍

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.png

  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();
}
Licensed under CC BY-NC-SA 4.0