关闭Qt中的新非child窗口
我想做两个窗户。第二个应该在第一个中调用。我不把他们和孩子->父母联系起来。 但当我打电话给第二个窗口并关上它时,第一个窗口也关上了。我该怎么办? 这两个窗口都是从QWidget中固有的。 C++与QT关闭Qt中的新非child窗口,qt,qwidget,Qt,Qwidget,我想做两个窗户。第二个应该在第一个中调用。我不把他们和孩子->父母联系起来。 但当我打电话给第二个窗口并关上它时,第一个窗口也关上了。我该怎么办? 这两个窗口都是从QWidget中固有的。 C++与QT 对不起,我的描述不好。 我有一个主窗口。类继承自QMainWindow。我创建了第二个窗口。类继承自QWidget。 在第一个(主窗口)中,我创建并调用第二个窗口 ConfigWindow *ConfWindow = new ConfigWindow(); ConfWindow->sho
对不起,我的描述不好。 我有一个主窗口。类继承自QMainWindow。我创建了第二个窗口。类继承自QWidget。 在第一个(主窗口)中,我创建并调用第二个窗口
ConfigWindow *ConfWindow = new ConfigWindow();
ConfWindow->show();
没有给家长链接。一切正常,但当我关闭第二个窗口(配置窗口)时,我的主窗口也关闭了。我不必在这里面。配置窗口关闭后,我应该如何阻止关闭主窗口
希望描述得好一点。
我的第一个窗口有以下标志:
this->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
没有他们一切都好。如果我需要窗口中的标志,我可以更改一些内容吗?如果这是代码,那么Qt中有一个巨大的错误。
上述代码不应关闭您的第一个窗口,一定是出了什么问题。
应用程序是关闭的还是崩溃的 备注
谁正在删除配置窗口?有一个
Qt::WA_DeleteOnClose
属性在窗口关闭后删除它
ConfigWindow *confWindow = new configWindow();
configWindow->setAttribute(Qt::WA_DeleteOnClose, true);
confWindow->show();
你需要像这样的东西:
QApplication app(argc, argv);
app.setQuitOnLastWindowClosed(false);
这是测试程序:
注意,现在需要显式地调用主窗口的析构函数
如果你阅读,你会发现:
如果此属性为true,则当最后一个具有Qt::WA_QuitOnClose属性集的可见主窗口(即没有父窗口)关闭时,应用程序将退出。默认情况下,此属性为除子窗口之外的所有窗口小部件设置
因为您的主窗口是一个(无框架)工具窗口,所以它不起作用。这使得ConfWindow成为唯一的非子窗口顶级小部件。因此,如果您关闭ConfWindow,它会促使应用程序实例退出。恐怕我不能仅凭此信息提出任何建议。你能编辑这个问题来发布更多信息吗?理想情况下,一个简短的代码示例将显示您使用这两个窗口以及main()函数所做的操作。这个问题写得很差,例如,当你说“我调用了第二个窗口”时,你到底在做什么?应用程序是关闭的还是崩溃了?还有其他问题,我们需要更多的信息(代码)。