目录

  • 前言
  • 方法
    • 1 其他类必须继承QWidegt及其派生类
    • 2 将主窗口UI公有化
    • 3 定义一个静态的Widget指针
    • 4 将mywidget指针中的ui指针传给UiOperationDlg.h中我们定义的ui指针
  • 测试

前言

在实际工程应用中,利用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-------
有用请点个

C++ Qt中其他类调用窗口中的ui控件相关推荐

  1. QT-子线程或自定义类操作访问主界面UI控件的几种方法

    前言 QT创建窗体工程,一般在MainWindow或Dialog类里可以直接通过ui指针访问控件,但是添加新的类后又如何访问呢,可以通过以下几种方式: 1.将ui指针公开后直接访问 (1)例如有个自己 ...

  2. C# 子线程调用主线程窗口中的TextBox控件

    使用情景 开发环境:VS 2013 Pro, .Net Framework 4.5 C# 开发窗口程序,需要在开辟的子线程中调用textbox控件,修改显示内容 直接调用会报错,原因是跨线程操作,需要 ...

  3. Qt中LineEdit、TextEdit 、PlainTextEdit三个控件的区别

    Qt中LineEdit.TextEdit.PlainTextEdit这三个控件区别为:输入格式不同.用途不同.限制行数不同. 一.输入格式不同 1.LineEdit:LineEdit的输入格式为单行文 ...

  4. C# winform中一个类中如何调用另一个窗体的控件或方法

    转载地址:http://blog.csdn.net/ichenqingyun/article/details/52622340 一种是创建窗体对象的方式,通过对象调用控件或方法 例如: Form1 f ...

  5. 关于Qt中QDialog对话框调用exec()函数界面退出造成僵尸程序问题

    关于Qt中QDialog对话框调用exec函数产生的问题 问题一: 问题描述: 原因分析: 解决方案: 问题二: 问题描述: 求助:关于这个问题,学识尚浅,求大佬分析一波 问题一: QDialog对话 ...

  6. QT中Camera相机调用

    一:摄像头配置 1.创建摄像头类,获取电脑端的所有摄像头 cameras = QCameraInfo::availableCameras(); //获取所有相机的列表 if (cameras.coun ...

  7. c#,c++,qt中多线程访问UI控件线程的问题汇总

    c#和MFC中可以创建UI控件及模态/非模态对话框,Qt中只能在主UI线程中创建访问UI控件. c#和MFC中可以通过全局变量或指针句柄等方式在工作线程中访问其他UI线程控件,其中c#需要Invoke ...

  8. 在一个窗体中调用另一个窗体的控件或方法(C#)

    在一个窗体中调用另一个窗体的控件或方法 解决方案:从构造函数中传递参数(Form). 1.将Form1中的控件改成public属性 具体实现过程请参看一下代码(在form1的textbox1中输入然后 ...

  9. Qt 实现自定义Ui控件例子,以自定义的Slider为例(QWidget)

    说明 Qt可以比较方便地实现自定义控件在Qt Creator中使用.网上也有很多大神的控件可以使用,但是如果想要自己简单定制也可以按照这个流程. 本文的要点: [1]如何实现一个自定义控件? 本文使用 ...

最新文章

  1. Qt4在linux下的安装
  2. 做专才能做强做大——从OA、协同之争说起
  3. 手把手Tinyxml入门,C++ VS2010
  4. 【LeetCode从零单排】No.169 Majority Element(hashmap用法)
  5. 【android】EGL数据结构
  6. Openstack Swift 原理、架构与 API 介绍
  7. 韩顺平java作业题_韩顺平java作业
  8. 源泉设计cad插件下载 | 含源泉cad插件使用教程
  9. 计算机毕业设计之流浪宠物管理系统
  10. 关于windows 7 启动 security center
  11. SAP中部分凭证状态导致的审计序时账和科目余额不平——会计凭证中的注释项目
  12. 剧本创作时的标准格式,让你的剧本轻松得到制片公司青睐
  13. 在ThemeForest上销售的利弊
  14. extjs 中formPanel提交到action后返回json数据到ext中,但是ext页面不进入sucess也不进入failure
  15. html删除学生数据,对学生信息进行删除网页html代码.doc
  16. 刷题日记-SQL 查找最晚入职员工的所有信息
  17. yii2.0域名目录绑定(二级域名)以及url美化 url伪静态 Apache ,Ngnix和 IIS
  18. HTML5超简单的日期时间控件
  19. 闲置台式机+文件服务器,牛人闲置电脑大改造!超低成本组建家用黑群晖NAS
  20. 获取打印机分辨率_为孩子准备的第一台口袋打印机,喵喵机P2S评测

热门文章

  1. 给小学生上计算机课,【学生简笔画】小学生上电脑课精选日记
  2. 数字视频监控系统开发及应用
  3. element 下拉框中树节点选中之后不收回下拉框
  4. C# 正则表达式详解(学习心得 25)
  5. 每个月工资多少才要交税
  6. 毕业前实现了一件多年来的愿望
  7. GO 基于gorilla websocket实现点餐系统(一阶)
  8. Temporal Shift Module(TSM) 部署在自己电脑上并训练自己的数据集
  9. 小米AI 连接智能生活
  10. 《逻辑学》模拟试题及答案