• 5864阅读
  • 5回复

[提问]有没有更好的方法在几个窗口之间传递信息? [复制链接]

上一主题 下一主题
离线facatcool
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-14
我的方法可能比较笨。例如A和B两个窗口分别属于不同的类(两个继承自QDialog的类),其中A是B的父窗口。如果我要在B中访问A中的变量,我用的是如下的方式:
// in class B
A *parent=(A *)parentWidget();
然后通过parent-> 来访问A中的变量。
但这样的问题是每次A类被改写以后B类一同也要被重新编译一次。
大家有什么更好的办法B被重新编译吗?
离线myseemylife

只看该作者 1楼 发表于: 2011-05-14
回 楼主(facatcool) 的帖子
在B中提供把A中要访问到的变量setXXX(XX)的方法,
要用到什么变量就调用set一下
蠢笨的愚钝~
离线roywillow

只看该作者 2楼 发表于: 2011-05-14
一个更笨的方法
B需要A的信息的时候,发射信号,这个信号与A中的槽关联
A中的槽把B需要的信息以信号发射出去,这个信号关联B中的槽……
OTL
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线zhy282289
只看该作者 3楼 发表于: 2011-05-14
回 2楼(roywillow) 的帖子
这................还有更笨的方法不.'
楼上头像盯久了很诡异啊~~~
为什么我脸这么胖~
离线roywillow

只看该作者 4楼 发表于: 2011-05-14
或者说……B的定义中的parent的类型不是QWidget*,而直接就是A*,这样直接就可以访问A类新加的成员函数了,不过这样B的使用范围就被限制了……

诡异就诡异吧=w=
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线facatcool
只看该作者 5楼 发表于: 2011-05-14
引用第2楼roywillow于2011-05-14 16:57发表的  :
一个更笨的方法
B需要A的信息的时候,发射信号,这个信号与A中的槽关联
A中的槽把B需要的信息以信号发射出去,这个信号关联B中的槽……
OTL

这个方法好!
快速回复
限100 字节
 
上一个 下一个