社区
Qt
帖子详情
关于QT中多个类之间数据访问的问题
sonicss
2017-03-31 08:49:54
我有个父类A,实例化了类B1和类B2,类B1负责TCP通信,类B2负责CAN通信。
主站的数据都是类B1通过TCP收发的;
底层的数据都是类B2通过CAN总线收发的;
如何很好的实现类B2的数据和类B1的数据进行交互呢?(数据量比较大)
我想到的有3种方式:
1:使用全局变量
2:使用静态变量,通过类名+静态变量访问
3:通过信号和槽,信号中将需要传给对方的数据指针带过去
通常在几个相互之间没有实例化关系的类中,如何做大数据的传输比较好?
...全文
1072
7
打赏
收藏
关于QT中多个类之间数据访问的问题
我有个父类A,实例化了类B1和类B2,类B1负责TCP通信,类B2负责CAN通信。 主站的数据都是类B1通过TCP收发的; 底层的数据都是类B2通过CAN总线收发的; 如何很好的实现类B2的数据和类B1的数据进行交互呢?(数据量比较大) 我想到的有3种方式: 1:使用全局变量 2:使用静态变量,通过类名+静态变量访问 3:通过信号和槽,信号中将需要传给对方的数据指针带过去 通常在几个相互之间没有实例化关系的类中,如何做大数据的传输比较好?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rivershan
2017-04-19
打赏
举报
回复
单例类, 用一个qbytearray, 用qmutex保护... 2个读写线程, 10ms一个数据读写没问题
jun_01
2017-04-13
打赏
举报
回复
楼主的方法都可以吧。 如果用静态变量,就要保证B1、B2都只有一份。
Acuity.
2017-04-08
打赏
举报
回复
引用 4 楼 sonicss 的回复:
管道是用在不同进程之间比较合适吧,同一个程序,这样用不是太复杂吗?
同一个程序你也可以开几个处理线程啊,也必须这样做,提高处理效率!
sonicss
2017-04-08
打赏
举报
回复
管道是用在不同进程之间比较合适吧,同一个程序,这样用不是太复杂吗?
bestman
2017-03-31
打赏
举报
回复
按二楼的方法,管道做最好
bestman
2017-03-31
打赏
举报
回复
建议使用文件比较好,B1和B2可以写成两个线程,同时对同一个文件访问,加互斥锁,可以做到同步
诺水城子
2017-03-31
打赏
举报
回复
使用管道传输
qt
不同ui
类
之间
的
数据
互访
由于控件处于不同的ui
类
中
,且控件在ui
类
中
是私有的,所以不能够直接进行互访,解决的办法有两个: 1.相互指针引用,即在每个
类
中
定义另一个
类
的指针并引用需要
访问
的那个
类
的指针。 2.利用信号与槽的机制,将所需要的
数据
当做信号的参数传递到槽函数
中
。 ...
QT
中
涉及到
数据
传递的几种情况分析
QT
版本:
Qt
Creator 5.4.0_mingw 1、同一
类
同一对象 的
数据
传递
类
中
的
数据
成员可以被同一
类
中
的任何一个函数
访问
。直接在
类
中
声明
数据
成员即可 注意:在.h文件的
类
中
声明成员,并且在.cpp文件的函数
中
实例化一个对象,然后通过对象名( 用".")
访问
2、同一
类
不同对象 的
数据
传递 在
类
中
把
数据
成员声明为静态,即添加关键字"static",通
C++/
QT
关于
多个
类
操作同一个对象的解决办法
最近经常使用
QT
,每一个窗口都需要建一个单独的
类
,在我的程序
中
,每个窗口都要操作同一个
类
的对象,但是不能把这个
类
的对象声明成每个窗口
类
的成员。因为是多文件操作,所以要用extern关键字来修饰被操作的
类
的对象。extern声明的变量必须要在对应的源文件
中
定义。于是我用了一个
类
指针,代码如下 //a.h class A{}; extern A *pa; //a.cpp pa = new A; 这样只要文件
中
包含a.h头文件就可以对指针pa进行操作了. ...
Qt
5.12--
Qt
Quick多页面切换、多页面切换动画、
多个
qml文件
数据
交互
Qt
5.12学习笔记--
Qt
Quick多页面切换、多页面切换动画、
多个
qml文件
数据
交互1 多页面切换方法2 多页面切换动画3
多个
qml文件
数据
交互参考 1 多页面切换方法 (1)“隐藏法” 前一个视图visible设为false或者透明度opacity设为0,相当于“隐藏”了,实际还存在; 要显示的视图visible设为true或者透明度opacity设为1,显示出来; (2)“动态” va...
Qt
多界面使用串口收发
数据
Qt
多界面使用串口收发
数据
核心思想:将串口封装成单独一个
类
,串口变量和串口设置成全局变量,串口
类
的构造函数初始化串口,如串口名,波特率,
数据
位等…,主函数入口实例化串口对象。 串口
类
的 *.h 串口
类
的 *.cpp文件 main.c 使用串口收发
数据
,在需要用到串口的界面包含串口
类
的头文件,使用QSerial::write()函数进行发送,接收的
数据
放在全局变量Data里。 示例: 显示结果(我这里是跟下位机进行收发,发送的字符串以\r\n结束,接收到的
数据
跟发送的
数据
一样): ...
Qt
16,216
社区成员
26,595
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章