首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

请问:怎么触发以下事件

2012-05-22 
请教:如何触发以下事件。1. 相互独立的widget类型的界面。A和B。2. A和B,都有一个一按钮,并且单击按钮都弹出Q

请教:如何触发以下事件。
1. 相互独立的widget类型的界面。A和B。

2. A和B,都有一个一按钮,并且单击按钮都弹出QMessageBox(YES, NO)


问题:
1,根据A弹出的QMessageBox的返回值(YES,NO),来显示出来B,并且关闭A!

2,根据B弹出的QMessageBox的返回值(YES,NO),来显示出来A,并且关闭B!

A和B根据,返回值都是YES来实现,循环显示。。。

请问,这样的事件,应该如何触发哪???

[解决办法]
把YES和A关联起来应该就可以了
[解决办法]
把A和B都放到一个类C中
A和B都定义一个signal用于告诉C显示另外一个 当返回YES时触发signal
[解决办法]
根据不同的返回值发射不同的信号,然后把信号和相应的槽连接起来,就ok了。当然了,这里面的信号和槽函数都需要自己来定义。
[解决办法]
如果没有父类去控制的话,用connect好像连接不起来了吧。

可以用全局变量去记录,例如
在main.cpp中,
定义全局变量
QWidget* hide_widget;
在创建的时候隐藏B,并用全局变量记录
widget_A* a=new widget_A;
a->show();
widget_B* b=new widget_B;
b->hide();
hide_widget=b;
在widget_a.cpp中,
extern QWidget* hide_widget;
然后在yes响应的地方:
hide_widget->show();
hide_widget=this;
close();
在widget_b.cpp中同以上操作。

这样应该可以实现,但个人感觉还是用一个父类控制比较好。

[解决办法]
两个widget内各声明一个指向另外一个widget的指针,hide这个show另外一个。

热点排行