Qt调用主界面ui

简介: 笔记

解决问题


为了在其他类中调用主界面MainWindow的ui。


简易步骤


1. mainwindow.h

u i uiui: 设置为public

#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();
    Ui::MainWindow *ui; // 公有化ui,供其他类调用
};
#endif // MAINWINDOW_H


2. mainwindow.cpp

包含其他类头文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "UDPserver.h" // 要调用的类
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->UDP = new UDPserver(this); // 主界面指针this传给其他类
}
MainWindow::~MainWindow() { delete ui; }

3. UDPserver.h

包含主界面的头文件及其ui文件

声明主界面类

#ifndef UDPSERVER_H
#define UDPSERVER_H
#include <QWidget>
#include "mainwindow.h"
#include "ui_mainwindow.h"
class MainWindow;
class UDPserver : public QWidget
{
    Q_OBJECT
public:
    explicit UDPserver(MainWindow *parent = nullptr);
    virtual ~UDPserver();
private:
    Ui::MainWindow *ui;
};
#endif // UDPSERVER_H

4. UDPserver.cpp

ui设置为主界面的ui即可。

#include "UDPserver.h"
UDPserver::UDPserver(MainWindow *parent) : QWidget(parent)
{
    ui = parent->ui;
}
UDPserver::~UDPserver() {}


头文件互相引用


【member access into incomplete type】


解决办法:


A文件,B文件相互引用,实际上就是两个.h文件,不能同时存在include对方,一者换为声明。


A.h:包含B头文件

B.h:声明A类

B.cpp: 包含A头文件


相关文章
|
6月前
|
算法 数据可视化 程序员
【Qt UI】调色板QPalette类在Qt编程中的应用
【Qt UI】调色板QPalette类在Qt编程中的应用
175 0
|
6月前
|
算法 API C++
【Qt UI】QT 窗口/控件置顶方法详解
【Qt UI】QT 窗口/控件置顶方法详解
456 0
|
6月前
|
算法 前端开发 C++
【Qt UI相关】Qt设置窗体或控件的背景色透明
【Qt UI相关】Qt设置窗体或控件的背景色透明
672 0
|
6月前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
143 1
|
3月前
qt 手搓ui
qt 手搓ui
41 3
|
6月前
|
C++
QT第一个程序命名空间详解,解释ui_widget的和xxx.cpp的联系
QT第一个程序命名空间详解,解释ui_widget的和xxx.cpp的联系
100 0
|
6月前
|
编解码 C++
Qt第一课 第一个ui界面
Qt第一课 第一个ui界面
82 2
|
6月前
|
算法 API 开发者
【Qt UI相关】Qt中如何控制 窗口的最大化、最小化和关闭按钮?一文带你掌握用法
【Qt UI相关】Qt中如何控制 窗口的最大化、最小化和关闭按钮?一文带你掌握用法
1113 1
|
6月前
|
算法 开发者
【Qt UI相关】Qt5和Qt6中关于高DPI缩放属性
【Qt UI相关】Qt5和Qt6中关于高DPI缩放属性
647 1
|
6月前
Qt6学习笔记四(ui使用、资源文件添加)
Qt6学习笔记四(ui使用、资源文件添加)
195 0