Qt QDockWidget(浮动)最小化我的MainWindow最小化

时间:2011-06-15 14:18:42

标签: c++ qt

我如何最小化我的QMainWindow,而不是最小化我已经脱离并浮动的QDockWidget?我想做的是拿一个GUI的小窗口来监视MainWindow的其余部分。 MainWindow不会出现在屏幕上,我想看到的只是浮动时的DockWidget。

2 个答案:

答案 0 :(得分:4)

当主窗口最小化时,浮动窗口几乎肯定会被最小化,因为主窗口拥有子窗口。或者换句话说,浮动窗口是主窗口的。当其所有者窗口最小化时,子窗口无法显示。

解决方案显然是打破浮动窗口和主窗口之间的所有权关系。这可能还需要您更改浮动窗口所代表的窗口类型。我猜测QDockWidget类实现了浮动工具调色板或其他形式的弹出窗口。为了拥有独立窗口,您需要创建一个重叠窗口。

详细了解各种类型的窗口here,至少假设您使用的是Windows 我想这对其他目标操作系统来说是类似的事情。

特别是在Windows上,有人可能会建议您将浮动窗口作为 desktop 窗口的子窗口,但是让我借此机会强烈建议您不要这样做。有关细致入微的讨论,请参阅Raymond Chen的blog post on the subject

答案 1 :(得分:0)

当其父QMainWindow最小化时,浮动QDockWidget会自动最小化。你无能为力。您可能必须将QDockWidget更改为父级= 0的QDialog(或其他一些QWidget)。

相关问题