Qt一个工程调用另一个工程的类成员变量

2023-10-30

一句两句话已经不能表达现在的激动情绪了,唯有感叹知识的博大精深,并把感叹转变为文字。

同一个工程调用其他类成员变量非常简单。

如:

定义

Test1.h中申明成员变量

class A
{
public:
	double m_fTest;
};

Test1.cpp中改变成员变量的值。

m_fTest = 265.78;

然后再类B中调用类A的成员变量m_fTest,并需求类A中改变该值时,类B中也要随之改变:

调用方法:包涵类A的头文件

#include “test1.h”

然后在调用处声明类A的对象:

A  *a;

通过类A的对象来调用成员变量即可:

a->m_fTest;

不同工程中调用:

这就不能再像上面那样调用了,虽然也能调用到,但值不会随之改变,只能调用到初始化值。

这就需要通过虚函数进行调用:

在工程1中:

Test1.h中:

class A
{
public:
virtual void update();
virtual void onSimulationSlider(int n){};
};

并在虚函数中调用工程2中的虚函数updateSimulation

Test2.h中:重写虚函数onSimulationSlider并在该虚函数中调用工程2中的虚函数updateSimulation

#include “Test1.h”
class B
{
public:
	double m_fTest;
void onSimulationSlider(int n){};
};

在工程2中:Test3中调用类A中的虚函数:

#include “Test1.h”

A *mTest;

mTest ->onSimulationSlider(n);

然后在工程1中的虚函数onSimulationSlider中操纵想要调用的成员变量。

如果在工程2中的Test4中的类想通过Test3中的类调用该成员变量,可以通过消息。

例如:Test4是一个界面类,界面上有一个slider控件,点击slider后,想让工程1中Test1中的成员变量m_fTest的值随slider的值变化而变化。

则Test3中的虚函数updateSimulation中需要调用在Test4中的虚函数update(重写Test1中的虚函数update)

Test4.h中:

声明信号和槽函数:

signals:

         voidhorizontalSlider( int );

public slots:

                   voidonhorizontalSlider(int);

在Test4.cpp中:

重写Test1中的虚函数updata,并将slider的信号放在虚函数中
bool SimulationHardwareGUI::update()
{
	QObject::connect(ui.m_Slider,SIGNAL(valueChanged(int)),this,SLOT(onhorizontalSlider(int)));
	this->repaint();
	return true;
}

定义槽函数onhorizontalSlider,并在槽函数中调用信号函数

void SimulationHardwareGUI::onhorizontalSlider(int n)
{
	QSlider *ChangeSlider = qobject_cast<QSlider *>(sender());
	if(ChangeSlider != NULL)
	{
		horizontalSlider( n );
	}
}

在Test3中调用Test4的信号函数:

connect((QObject*)(m_SimulationHardware), SIGNAL(horizontalSlider(int )), this, SLOT(onSimulationSlider(int)));

并定义槽函数onSimulationSlider,在槽函数中调用Test1中的虚函数onSimulationSlider。

如此循环调用即能实现不同工程的成员变量互调。

值得注意的是在槽函数和信号函数的参数只能是类型,不能定义变量。


转载于:https://www.cnblogs.com/SunkingYang/p/11049214.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt一个工程调用另一个工程的类成员变量 的相关文章

  • VS中Qt中ui文件和生成.h文件问题

    vs中的ui的ui xxxx h头文件是由Qt通过编译生成 vs项目属性中配置环境调用Qt安装目录下bin目录下的uic exe来自动生成代码 如果移动工程目录 而之前又把相关的ui xxx h头文件添加到工程或移动其位置 那么再次修改ui
  • Qt——用于表格QTableView的模型

    如果想使用表格来呈现数据 Qt提供了一个方便的部件QTableWidget 但是直接用它实现一些功能可能比较困难 这里将介绍一种强大 灵活的方式来操作表格 一 模型 视图架构 在这个架构中 模型用于存储数据 视图用于呈现数据 除此之外 还有
  • UI设计师有钱途还是平面设计师或者是网页设计师呢?

    UI设计 平面设计和网页设计 哪个前景更好呢 其实ui和网页设计都属于平面设计里的一个分支 举个例子 设计一份饭店的点菜单 一样的图案 印刷出来是传统平面设计 放网站上是网页设计 放手机上显示是UI 其实都是一样的平面美术设计 那么有人要问
  • 突破自定义View性能瓶颈

    在Android应用程序中 自定义View是一个非常常见的需求 自定义View可以帮助您创建独特的UI元素 以满足您的应用程序的特定需求 然而 自定义View也可能会导致性能问题 特别是在您的应用程序需要处理大量自定义View的情况下 在本
  • Qt信号与槽的链接3种方法详解

    转载自 14条消息 Qt5 9 2 VS2017入门实例 透彻解析 冯爽朗的博客 CSDN博客 vs qt 示例 由于现在书上介绍的大部分都是Qt Creator 并没有介绍Qt VS的教程 虽然说很相似 但是也有很多地方不同 对于初学者特
  • 如何创建项目

    1 MvvmLight框架的引用 引用 头部选项卡的 工具栏 NuGet 包管理器 管理解决方案的NuGet 程序包 搜索 MVVM Light MvvmLight 作者 Laurent Bugnion GalaSoft 勾选项目 Do n
  • 前端自测.

    交互 宽度1200px 表单校验 长度 敏感词汇 初始化 loading 结果 空 表单重复提交 loading 请求拦截 限流 数字 大数据 千分位 文本长度 省略号 数据查询结果校验 按条件查询结果是否正确 空数据传参 xx 参数头尾有
  • UE4命令行使用,解释

    命令行在外部 从命令行运行编辑项目 1 导航到您的 LauncherInstall VersionNumber Engine Binaries Win64 目录中 2 右键单击上 UE4Editor exe 的可执行文件 并选择创建快捷方式
  • element ui的el-tree多选树(复选框)父子节点关联不关联的问题,选中当前节点,他的子节点和父节点是否被选中,非常详细

    element ui的el tree多选树 复选框 父子节点关联不关联的问题 选中当前节点 他的子节点和父节点是否被选中 非常详细 属性check strictly 官方文档提供属性check strictly 在显示复选框的情况下 是否严
  • QT QTableWidget 表格 学习笔记

    首先 了解一下QTableWidget 控件的属性 成员方法 功能 setText const QString text 设置单元格中的文本 setlcon const Qlcon icon 给单元格添加图标 setBackground c
  • 【前端】Vue+Element UI案例:通用后台管理系统-项目总结

    文章目录 相关链接 前言 效果 登录页 首页 管理员的首页 xiaoxiao的首页 用户管理 总结 项目搭建 左侧 CommonAside 上侧 CommonHeader和CommonTag 首页 Home vue 用户管理 User vu
  • android Scroller

    参考 http www linuxidc com Linux 2016 01 127276 htm 以前只知道怎么使用scroller 照猫画虎 复制粘贴 今天遇到使用scroller 还是要去搜索 这样不行 要搞懂原理 上面的博客写的很漂
  • Qt的基本语法及其使用(一)

    Qt的概念 Qt是通用的C 开发界面框架 C 图形用户界面 应用程序开发框架 既可以开发GUI程序也可以开发开发非GUI程序 Qt是面向对象的框架 使用特殊的代码生成扩展 Qt的历史 1991由QT公司研发 2008年被诺基亚收购 2012
  • 如何启用 CSF 防火墙 Web UI

    ConfigServer 安全和防火墙 CSS 是适用于 Linux 系统的基于 iptables 的防火墙 在我们之前的教程中阅读了CSF在Linux系统上的安装教程 CSF 还提供内置 Web UI 用于从 Web 界面管理防火墙 在本
  • 【UI自动化测试】Jenkins配置

    前一段时间帮助团队搭建了UI自动化环境 这里将Jenkins环境的一些配置分享给大家 背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测
  • 【QView】基于QML的UI组件框架 之 AImage (图片)

    先上结果演示 环境 不说版本就是耍流氓 硬件 通用PC 手机 Jetson Xavier NX 套件 均测试有效 系统 Ubuntu 20 04 Android Windows 均测试有效 软件 基于QT6 2 4 Qml 功能描述 AIm
  • Axure RP 8 for Mac/win中文版:打造完美交互式原型设计体验

    Axure RP 8 一款引领潮流的交互式原型设计工具 为设计师提供了无限的可能性 让他们能够创造出逼真的原型 从而更好地展示和测试他们的设计 Axure RP 8拥有丰富的功能和工具 让设计师可以轻松地创建出复杂的交互式原型 从简单的按钮
  • 独立搭建UI自动化测试框架分享

    今天给大家分享一个selenium testng maven ant的UI自动化 可以用于功能测试 也可按复杂的业务流程编写测试用例 今天此篇文章不过多讲解如何实现CI CD 只讲解自己能独立搭建UI框架 如果有其他好的框架也可以联系我 分
  • element ui backTop源码解析-逐行逐析

    backTop 回到顶部 组件简介 基础概念 返回页面顶部的操作按钮 代码
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关

随机推荐