利用信号和槽传递参数问题

未狂 2014-08-19 03:17:26
之前不同对象间传递参数,是使用信号和槽来传递的,但是最近写的一个代码遇到个小问题
具体是这样的
之前传递参数,对象A里创建了一个对象B,我可以用connect(B,SIGNAL,A,SLOT )来传递参数

现在我是三个类,其中A里创建了B,B里创建了C,我希望A获得C处理得到的数据
这样就很麻烦,因为A里没有C,所以没办法使用connect(C,SIGNAL,A,SLOT)来传递参数

我目前的处理方法是分两次传递,即在B里connect(C,SIGNAL,B,SLOT),然后在A里connect(B,SIGNAL,A,SLOT)
这样虽然是能中间隔了一个对象进行传递,但是A,B,C类里都多自定义了信号和槽

有什么方法能简化这个问题?
...全文
533 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoqiang5448 2014-08-28
  • 打赏
  • 举报
回复
请忽略我的问题
xiaoqiang5448 2014-08-26
  • 打赏
  • 举报
回复
上面的回复signal gotoAccount(); 是笔误,实时上signal goAccount(); 还是不行
applewqj 2014-08-26
  • 打赏
  • 举报
回复
A发信号给B槽,B槽里发信号到C
xiaoqiang5448 2014-08-25
  • 打赏
  • 举报
回复
qml 里面 B: signal gotoAccount(); A: property var forgetpwd_window: null; welcomeWindow.forgetpwd_window.onGoAccount.connect(find_goInputAccount); 但是提示qrc:///WelcomeWindow.qml:60: TypeError: Cannot read property 'onGoAccount' of undefined 是怎么回事?
ganjianh8 2014-08-25
  • 打赏
  • 举报
回复
B里connect(C,SIGNAL,B,SIGNAL) 然后在A里connect(B,SIGNAL,A,SLOT)
Jonix 2014-08-23
  • 打赏
  • 举报
回复
其实从方式看,信号槽的方式真不如函数回调的方式。
WeiXiao_365 2014-08-23
  • 打赏
  • 举报
回复
对呀,你可以再A和B连的信号槽中,传递C的对象不就可以了么。
vcf_reader 2014-08-23
  • 打赏
  • 举报
回复
用指针传递一下试试
漫舞云中影 2014-08-19
  • 打赏
  • 举报
回复
信号可以连接到信号的。 定义类成员变量。在B中定义C成员变量。然后在A里直接连到B->C。 定义友元类,友元函数。
jk19910410 2014-08-19
  • 打赏
  • 举报
回复
把A在B构造时传给B,,比如作为parent,然后再B中绑定A,C的信号槽

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧