现遇到一个问题
要从窗口b发送信号到窗口a,若用户点击×关闭b窗口则连同a窗口一同关闭
但是b窗口调用了close函数a也关闭了。
请问这个情况如何解决
可以在b给a发送的信号中添加一个参数,用来说明close()事件是由用户触发的还是程序调用close()触发的。
直接处理关闭信号的话处理起来不方便,可以参考如下方法解决:
1.增加一个全局变量g_close = 1;
在程序中原来调用b->close()的地方,修改成:
g_close = 0;//表示由程序触发关闭
b->close();
2.然后在你处理关闭信号的地方判断一下
if(g_close) //用户触发
//关闭a和b
else
//程序触发关闭信号处理