请教:如何触发以下事件。
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另外一个。