我在 mac OS X 上使用 Qt 4.8 作为标题开发了一个程序。现在我面临一个我花了很多时间但仍然无法解决的问题。
我有一个 QWidget(称为 A),它会在一些操作后打开一个 QMainWindow(称为 B)。当B打开时,我需要A被B挡住,所以我将A设置为B的父级,并将B的窗口模态设置为Qt::WindowModal。
在其他平台上,它就像我想的那样工作,但是,在mac上,B没有自己的标题栏,它只是弹出并附加到A的标题栏上。还有,关闭按钮A 的标题栏是灰色的,这意味着我无法通过按钮关闭 B,我需要使用 QMenu 上的退出 QAction 来关闭它。
当我将 B 的父级设置为 0(NULL)而不是 B 时,它具有独立的标题栏,就像在 windows 或 linux 上一样,这就是我想要的。但是它失去了B被A阻挡的财产。
我尝试设置诸如 Qt::CustomizeWindowHint 之类的 Windows 标志,但没有人工作。
有什么办法可以保持A和B的层级关系,在Mac上给B一个独立的标题栏?感谢大家的帮助:)
附言。我尝试了小程序,发现这种情况只发生在 WindowModal 上(NonModal 和 ApplicationModal 工作正常)