如何使“工具”窗口始终位于2个或更多主窗口之上?

时间:2016-01-22 12:53:02

标签: c++ qt focus z-order

快速提问

在QT C ++项目中,有2个主窗口(焦点可以设置为任意一个),以及tool窗口,它应位于2个主窗口的顶部。

如何实现这样的功能?

详细问题:

对于一个主窗口和一个工具窗口,很容易解决:

#include <QApplication>
#include <QWidget>

int main( int n, char* args[])
{
    QApplication app(n, args);
    QWidget mainWindow;
    QWidget subWindow(&mainWindow);
    subWindow.setWindowFlags(subWindow.windowFlags() | Qt::Tool);
    mainWindow.show();
    subWindow.show();


    return app.exec();
}
  • 主窗口始终位于工具窗口下方。
  • 可以与主窗口进行交互
  • 最小化/关闭主窗口将影响工具窗口
  • 另一个应用程序可以覆盖主窗口或两个窗口(它们不是最顶层的

我想要相同的功能,但有2个主窗口。想象一下视频播放器,其中工具窗口提供&#34;播放/停止&#34;控制两个图像:

  • 每个主窗口都具有相同的焦点重量:可以对其中任何一个进行聚焦,这可以覆盖另一个,但不会覆盖工具窗口。
  • 该工具始终位于其他两个工具之上。

2 个答案:

答案 0 :(得分:1)

您可以raise()工具窗口高于其他工具窗口。

这可能有所帮助:void QWidget::raise() documentation

此外,请参阅&#34;注意&#34;关于那个功能。

答案 1 :(得分:-2)

将Qt :: WindowStaysOnTopHint添加到标志