C++ 移除Raspberry Pi 3上QMessageBox的最小化按钮

C++ 移除Raspberry Pi 3上QMessageBox的最小化按钮,c++,qt,raspberry-pi,C++,Qt,Raspberry Pi,我在Raspberry Pi 3上运行我的Qt5应用程序,使用xcb平台以全屏模式运行。 我的问题是,可以从所有QMessageBox最小化整个应用程序,因为弹出消息有一个最小化按钮 函数setWindowFlags()被忽略,因此无法删除最小化按钮 msgBox->setWindowFlags(Qt::Dialog); ... msgBox->setWindowFlags(Qt::WindowCloseButtonHint) 如何解决此问题?考虑到对setWindowFlags的每次调用都会

我在Raspberry Pi 3上运行我的Qt5应用程序,使用xcb平台以全屏模式运行。 我的问题是,可以从所有QMessageBox最小化整个应用程序,因为弹出消息有一个最小化按钮

函数setWindowFlags()被忽略,因此无法删除最小化按钮

msgBox->setWindowFlags(Qt::Dialog);
...
msgBox->setWindowFlags(Qt::WindowCloseButtonHint)


如何解决此问题?

考虑到对
setWindowFlags
的每次调用都会覆盖以前的调用,您需要使用或编辑标记:

msgBox->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
另一方面,在Windows中的类似场景中,我需要
QDialog
来仅使用关闭按钮,以下操作对我有效:

msgBox->setWindowFlags(msgBox->windowFlags() & ~Qt::WindowMinimizeButtonHint);

考虑到对
setWindowFlags
的每次调用都会覆盖上一次调用,您需要使用或编辑标记:

msgBox->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
另一方面,在Windows中的类似场景中,我需要
QDialog
来仅使用关闭按钮,以下操作对我有效:

msgBox->setWindowFlags(msgBox->windowFlags() & ~Qt::WindowMinimizeButtonHint);

代替
setWindowFlags
,尝试
msgBox->reparent(NULL,Qt::WindowCloseButtonHint)你的msgBox是模态的吗?也许您可以尝试调用msgBox->show()而不是exec()。如果没有再现错误的最小工作示例,就很难回答<代码>msgBox->重新分配(…)
不存在。我猜
msgBox->setParent(NULL,Qt::WindowCloseButtonHint)是否相同?但是,它不会删除最小化按钮。请尝试
msgBox->reparent(NULL,Qt::WindowCloseButtonHint),而不是
setWindowFlags
你的msgBox是模态的吗?也许您可以尝试调用msgBox->show()而不是exec()。如果没有再现错误的最小工作示例,就很难回答<代码>msgBox->重新分配(…)
不存在。我猜
msgBox->setParent(NULL,Qt::WindowCloseButtonHint)是否相同?但是它没有删除最小化按钮。我知道它覆盖了以前的值。这两个值都应该起作用,但事实并非如此。它似乎被忽略了。可能Qt与您的windows管理器不100%兼容?您是否在任何其他平台上进行过测试?我知道它会覆盖以前的值。这两个值都应该起作用,但事实并非如此。它似乎被忽略了。可能Qt与您的windows管理器不100%兼容?您是否在其他平台上进行过测试?