Qt一个工程调用另一个工程的类成员变量
来源:互联网 发布:黑莓passport软件下载 编辑:程序博客网 时间:2024/06/05 05:31
一句两句话已经不能表达现在的激动情绪了,唯有感叹知识的博大精深,并把感叹转变为文字。
同一个工程调用其他类成员变量非常简单。
如:
定义
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。
如此循环调用即能实现不同工程的成员变量互调。
值得注意的是在槽函数和信号函数的参数只能是类型,不能定义变量。
- Qt一个工程调用另一个工程的类成员变量
- QT中一个工程调用另一个工程或是C程序等
- C++ 一个类调用另一个类的成员变量/成员函数
- java中一个工程引用另一个工程的类
- C++ mfc如何调用窗口类函数 一个类调用另一个类的成员变量/成员函数
- 一个工程使用另一个工程对话框资源的方法
- eclipse java工程中,如何调用另一个工程的一些类
- c++如何一个文件如何调用在同一个工程下的另一个文件的函数
- android 中一个工程引用另一个工程
- Android一个工程引用另一个工程
- android 中一个工程引用另一个工程
- android 中一个工程引用另一个工程
- android 中一个工程引用另一个工程
- android 中一个工程引用另一个工程
- Android一个工程引用另一个工程
- android 中一个工程引用另一个工程
- android 中一个工程引用另一个工程
- android 中一个工程引用另一个工程
- c++模板类学习
- 网络视频播放地址
- Javascript 单元测试框架-Jasmine
- 英文算法数据库面试
- 9个面试者反馈
- Qt一个工程调用另一个工程的类成员变量
- 英文算法测试题
- 蓝桥杯 - 蚂蚁感冒
- Android APK 的md5 生成方式
- QT学习 参考链接
- FFmpeg源代码结构图 - 解码
- 推荐一下自己写的一个springMVC+hibernate注解+easyUI项目
- 开发常见错误
- 【PLSQL】变量声明,结构语句,cursor游标