如何使 `Tool` window 始终位于 2 个或更多 Main window 之上?
How to make a `Tool` window always on top of 2 or more Main window?
快题
在QT C++项目中,有2个主要的windows(焦点可以无差别地设置到其中任何一个),以及一个tool
window,它应该在上面2 主要 windows.
如何实现这样的功能?
详细问题:
一个主window和一个工具window,很容易解决:
#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();
}
- 主要 window 始终低于工具 window。
- 可以与主window互动
- minimizing/closing主要window会影响工具window
- 另一个应用程序可以涵盖主要 window 或两者 windows(它们不是最重要的)
我想要相同的功能,但有 2 个主要功能 window。想象一个视频播放器,其中工具 window 提供 "play/stop" 对两个图像的控制:
- 每个主要 window 都具有相同的焦点权重:可以将焦点放在其中任何一个上,这会覆盖另一个,但永远不会覆盖工具 window。
- 该工具始终位于其他两个工具之上。
将 Qt::WindowStaysOnTopHint 添加到标志中
您可以 raise()
该工具 window 高于其他工具。
这可能有帮助:void QWidget::raise() documentation
此外,请参阅该函数的 "Note"。
快题
在QT C++项目中,有2个主要的windows(焦点可以无差别地设置到其中任何一个),以及一个tool
window,它应该在上面2 主要 windows.
如何实现这样的功能?
详细问题:
一个主window和一个工具window,很容易解决:
#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();
}
- 主要 window 始终低于工具 window。
- 可以与主window互动
- minimizing/closing主要window会影响工具window
- 另一个应用程序可以涵盖主要 window 或两者 windows(它们不是最重要的)
我想要相同的功能,但有 2 个主要功能 window。想象一个视频播放器,其中工具 window 提供 "play/stop" 对两个图像的控制:
- 每个主要 window 都具有相同的焦点权重:可以将焦点放在其中任何一个上,这会覆盖另一个,但永远不会覆盖工具 window。
- 该工具始终位于其他两个工具之上。
将 Qt::WindowStaysOnTopHint 添加到标志中
您可以 raise()
该工具 window 高于其他工具。
这可能有帮助:void QWidget::raise() documentation
此外,请参阅该函数的 "Note"。