前言

在实际工程应用中,利用QT进行界面设计时可能会涉及到多个类,难免会需要在一些类中调用到主窗口类中的某些ui控件,或者访问其类成员变量
本博客将介绍如何实现这个过程。假定主窗口类为UiOperation,其他类为UiOperationDlg


方法

c++中qt项目的创建可见下博文,此处不赘述。
创建:☞QT安装 and VS2019中安装QT插件
初始化:☞QT代码移植到VS中复现

1 其他类必须继承QWidegt及其派生类

一个类如果想要使用ui控件,必须继承QWidegt及其派生类,否则无法调用ui指针。
在这里插入图片描述


2 将主窗口UI公有化

UiOperation.h 中的私有的ui指针公有化
在这里插入图片描述


3 定义一个静态的Widget指针

我们需要在UiOperation.h中定义一个公有的静态Widget指针从UiOperation中将ui传入到UiOperationDlg类中,否则即使UiOperationDlg类中载入#include "UiOperation.h"也无法调用ui指针
在这里插入图片描述

然后在UiOperation.cpp文件中将指针初始化, 将我们主窗口的this传给mywidget。

在这里插入图片描述


4 将mywidget指针中的ui指针传给UiOperationDlg.h中我们定义的ui指针

在这里插入图片描述


测试

通过以上四步,就可以实现在UiOperationDlg类中通过ui指针调用ui控件或访问UiOperation类成员变量。
调用UI控件:
在这里插入图片描述

访问类成员变量:
在这里插入图片描述

------tbc-------
有用请点个👍哦~~😀

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐