如何在Qt中设置父窗口超过子窗口

时间:2017-03-31 09:27:35

标签: c++ qt

我希望父窗口始终位于子窗口的顶部。

QMainWindow a();
a.show();

QMainWindow b(&a);
mat.show();

如何将a设置为b

1 个答案:

答案 0 :(得分:0)

您的设置似乎有点奇怪。主窗口B以A为其父级。如果你想拥有独立窗口,我想你应该删除继承链接。

在此cas中,您可以更改show calls的顺序以更改窗口的顺序:

QMainWindow a;
QMainWindow b;

b.show();
a.show();

如果您确定自己想要的方式,那么您就拥有了多种解决方案。

你可以用其他顺序调用show方法吗?未经测试。

也许你可以在调用show之前设置windows标志。如果你想以永久的方式拥有A,你可以更改windows标志:

这将是:

QMainWindow a;
QMainWindow b;

a.setWindowsFlags(Qt::WindowStaysOnTopHint| Qt::X11BypassWindowManagerHint);
a.show();
b.show();

如果你想操纵"谁是谁"在你的应用程序中,也许你应该将它们组合在一起,或者给它们一个共同的祖先,或类似的东西。