• 5382阅读
  • 6回复

[提问]关于两个widget之间的信息传输(已解决) [复制链接]

上一主题 下一主题
离线edsionte
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-16
大家好,我的问题如下:


我现在有两个widget   A和B,
点击A中的button,出现Bwidget,
我在B widget上输入了一些信息,
当我点击B widget上的确定按钮后,
将B widget上的信息返回到A中。这个如何作?




谢谢大家了。
[ 此帖被edsionte在2011-05-18 08:42重新编辑 ]
离线phu727
只看该作者 1楼 发表于: 2011-05-16
设置一个全局变量,点击B的确定之后把这输入的值传给全局变量,再从A中读,这是比较笨的办法,:-)!
离线yaotong195

只看该作者 2楼 发表于: 2011-05-17
用类静态成员或者在BWidget中加入PUBLIC的成员变量
离线cycloneii

只看该作者 3楼 发表于: 2011-05-17
可以用信号与槽,
B确定按钮按下得处理函数中将想要发送给A得信息通过信号发出去,然后把这个信号和A里面对应得槽函数连接起来
离线edsionte
只看该作者 4楼 发表于: 2011-05-17
回 3楼(cycloneii) 的帖子
我也是最先想到这种方法,但是具体如何作?


connect(BWidget, SIGNAL(Bsignal), AWidget, SLOT(Aslot))

是这样吗?
Bsignal是在BWidget中定义的一个信号,
Aslot是在AWidget中定义的一个槽函数,
信号和槽函数都有共同的参数,也就是我要传递的信息。

但是问题是,连接函数应该放在Awidget还是Bwidget。这个我不是很清楚。。
2.还有由于是从A中调用的B,因此在B中如何获得A的指针作为receiver?
希望帮忙回答一下。

[ 此帖被edsionte在2011-05-17 10:37重新编辑 ]
离线fljxray
只看该作者 5楼 发表于: 2011-05-17
在B中创建个A的对象:AWidget  *awidgetobj;
connect(BWidget, SIGNAL(Bsignal),awidgetobj, SLOT(Aslot));
试下看。
离线edsionte
只看该作者 6楼 发表于: 2011-05-18
首先谢谢你的回答。

我说下我的解决方法。
我的执行过程是点击Awidget的btn后调用Bwidget(调用前生成了一个Bwidget对象),
在B中用户输入相应信息。
现在要将B中的信息返回到A中。

因此我的解决办法是,
B中有一个“确定”btn,
在确定btn的槽中我发送一个信号(B中定义)
在A中定义对应的槽,
信号和槽传递了一个QString
也就是通过这个来传递信息

connect是在A中连接的。
connect(BWidget, SIGNAL(Bsignal),awidget, SLOT(Aslot));

希望对大家有帮助。。
快速回复
限100 字节
 
上一个 下一个