windows - 在 OSX 上使用 Qt 保持领先地位

标签 windows macos qt4

使用 Qt 4.8,我想将我的框架设置为“保持在顶部”。 Qt 方式并不完美,因为它需要重新创建涉及丑陋闪烁的窗口。

在 Win32 下,存在一个 native 方法:

SetWindowPos(winId(), <HWND_TOPMOST:HWND_NOTOPMOST>, 0,0,0,0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);

但是我必须在 OS-X 下使用什么代码?

最佳答案

这是我用来在 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 的通知系统。它还经过优化,因此在运行全屏应用程序时不会夺取焦点,这在您玩游戏或观看视频时非常有用。它应该给你一个开始。

关于windows - 在 OSX 上使用 Qt 保持领先地位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446090/

相关文章:

listview - QML 应用程序中只填充了一行 ListView,知道为什么吗?

licensing - 在 Qt 中制作应用程序,在 LGPL 下,我可以出售它吗?

c++ - 在异步模式下使用的 WinHttp - ERROR_INTERNET_CANNOT_CONNECT 如何干净地关闭连接

python - Flask CLI 在通过 docker-compose 运行时抛出 'OSError: [Errno 8] Exec format error'

c++ - 使用 MinGW (Dev-C++) 编译 64 位二进制文​​件

macos - Cocoa 监控端口上的数据包

macos - 防止 OS X 上的屏幕变暗和显示 sleep

windows - PowerShell WindowStyle -Hidden 适用于 Windows 10,但不适用于 Windows 7

linux - 在 vim 中复制/粘贴的默认缓冲区大小?

c++ - 在 Qt 中使用 SQLite 自定义函数