标题:求教,子窗口关闭事件如何通知父窗口,然后父窗口有相应动作!
作者:小蜗牛1015
日期:2015-12-22 10:31
内容:
我点击CheckBox弹出非模态窗口。然后关闭子窗口但是CheckBox的钩号仍然存在。怎样关闭子窗口同时让钩号取消。求教。。。。。。开发环境用的qt creator
#1 [lemonzll 12-22 17:44]
关联子窗口的destroyed信号。
#2 回 lemonzll 的帖子 [小蜗牛1015 12-23 09:24]
lemonzll:关联子窗口的destroyed信号。 (2015-12-22 17:44)
我刚学,不知道怎么关联子窗口的信号,具体在哪个文件里边写哪些内容,你能大体说一下吗?谢谢啊
#3 [蚂蚁power 12-23 10:08]
在主窗口中
{
子窗口类 对象a = new 子窗口类;
connect(对象a, SIGNAL(子类中的信号), this, SLOT(父类中的槽函数);
}
这样 点击关闭子窗口时 发送信号,父窗口就会受到。然后就可以了。如果信号不懂 你可以去网上看信号的资料
#4 [lemonzll 12-23 11:16]
看你子窗口是怎么建立的,如果是3楼写的那种用new来动态创建的窗口,需要对子窗口设置setAttribute(Qt::WA_DeleteOnClose)属性,这样点窗口关闭按钮时动态分配的窗口会自动删除,会产生destroyed信号。如果是在栈上建立的,直接关联destroyed信号就可以
#5 [lemonzll 12-23 11:20]
你是非模态窗口,估计是用new动态分配的。那大概写在创建窗口那里。
window = new Window(this); //这是你的子窗口
window->setAttribute(Qt::WA_DeleteOnClose); //设置窗口关闭时自动删除
connect(window, SIGNAL(destroyed()), this, SLOT(...)); //设置对应的信号关联,在slot中设置checkbox的状态
window->show(); //显示子窗口