Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关闭Qt中的新非child窗口_Qt_Qwidget - Fatal编程技术网

关闭Qt中的新非child窗口

关闭Qt中的新非child窗口,qt,qwidget,Qt,Qwidget,我想做两个窗户。第二个应该在第一个中调用。我不把他们和孩子->父母联系起来。 但当我打电话给第二个窗口并关上它时,第一个窗口也关上了。我该怎么办? 这两个窗口都是从QWidget中固有的。 C++与QT 对不起,我的描述不好。 我有一个主窗口。类继承自QMainWindow。我创建了第二个窗口。类继承自QWidget。 在第一个(主窗口)中,我创建并调用第二个窗口 ConfigWindow *ConfWindow = new ConfigWindow(); ConfWindow->sho

我想做两个窗户。第二个应该在第一个中调用。我不把他们和孩子->父母联系起来。 但当我打电话给第二个窗口并关上它时,第一个窗口也关上了。我该怎么办? 这两个窗口都是从QWidget中固有的。 C++与QT


对不起,我的描述不好。 我有一个主窗口。类继承自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()函数所做的操作。这个问题写得很差,例如,当你说“我调用了第二个窗口”时,你到底在做什么?应用程序是关闭的还是崩溃了?还有其他问题,我们需要更多的信息(代码)。