当前位置: 代码迷 >> QT开发 >> QT中怎么实现子窗口唯一
  详细解决方案

QT中怎么实现子窗口唯一

热度:40   发布时间:2016-04-25 03:55:51.0
QT中如何实现子窗口唯一?
主窗口中有个设置按钮,点击创建设置窗口。
问题是点击一次就创建一个,
怎样保证窗口唯一?

------解决方案--------------------
引用:
Quote: 引用:

你的意思是创建了一个之后点击按钮就不要再创建新窗口了?

判断窗口是不已经创建,且没有被关闭,不重复创建已经创建且没有关闭的窗口。

主窗口->children()
会返回它的孩子列表,可以从中去判断如果有你已经创建的子对象,那么就不要再创建了。
你的主窗口和子窗口要同时显示的吗?如果你创建子窗口的时候把父窗口隐藏了就不会出现
你说的重复创建的情况了。
------解决方案--------------------
声明static
------解决方案--------------------
标记一下不就行了
if(isCreated)
{
    widget->show();
}
else
{
    widget = new QWidget;
    widget->show();
    isCreated = ture;
}
销毁窗口的时候把isCreated改为false
------解决方案--------------------
告诉你一个最简单的办法,这种问题我解决过,使用QPointer<QWidget> 做一个成员变量,就行了,判断成员变量isNull(),是空就被释放了,否则指针还未析构!
------解决方案--------------------
单例模式??
  相关解决方案