使用Qt 4.8,我想设置我的框架“保持在最顶层”。 Qt方式并不完美,因为它需要重新创建涉及丑陋闪烁的窗口。
在Win32下,它存在一个本机方法:
SetWindowPos(winId(), <HWND_TOPMOST:HWND_NOTOPMOST>, 0,0,0,0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);
但是我必须在OS-X下使用什么代码?
答案 0 :(得分:8)
以下是我用来在Linux,Mac和Windows上设置最顶层窗口的代码:
setWindowFlags(
#ifdef Q_OS_MAC
Qt::SubWindow |
#else
Qt::Tool |
#endif
Qt::FramelessWindowHint |
Qt::WindowSystemMenuHint |
Qt::WindowStaysOnTopHint
);
您可以通过克隆此存储库来查看代码的演示:https://github.com/pcmantinker/Tray-Notification-System
我构建了这个存储库,以建立类似于Mac OS X的Growl的通知系统。它还经过优化,因此在运行全屏应用程序时不会窃取焦点,如果您正在玩游戏或观看视频,那么该应用程序非常棒。它应该给你一个开始。