我想在桌面右下角编写一个通知窗口,这样当有人上线时它就像 Skype 通知一样工作。有人可以帮我获取桌面的屏幕大小,以便我可以使用我的 Qt 应用程序将通知窗口放在右下角吗?
问问题
82820 次
3 回答
72
您可以使用QDesktopWidget
QRect rec = QApplication::desktop()->screenGeometry();
height = rec.height();
width = rec.width();
于 2013-09-24T07:49:53.260 回答
46
QScreen类(从 Qt 5.0 开始)提供有关屏幕大小(逻辑和物理)、方向和更改信号的信息。
QScreen *screen = QGuiApplication::primaryScreen();
QRect screenGeometry = screen->geometry();
int height = screenGeometry.height();
int width = screenGeometry.width();
更新:
- 对于多屏配置,请使用
QList <QScreen*> screens = QGuiApplication::screens();
- 对于方向(包括多屏),请使用
screen->orientation()
和(从 Qt 5.2 开始)screen->nativeOrientation()
于 2017-02-23T10:39:12.160 回答
9
您尚未说明您正在为哪个平台开发,但某些平台具有用于显示通知的 API。最好在可用时使用它们,因为如果屏幕可能不合适,则右下角。您可以依靠克拉默的回答。
例如,在 GNOME 中,用户可以让通知出现在特定屏幕上,或者选择根本不显示它们,直到他们单击系统托盘图标。API使libnotify
开发人员可以访问此功能。
说到系统托盘,您可能需要考虑使用 aQSystemTrayIcon
代替。它会使 UI 有点不同,但有一个独立于平台的 Qt API,它适用于 GNOME、KDE、MacOS、Windows 和可能的其他平台。它还具有一种showMessage
以平台原生方式显示消息的方法,例如在某些版本的 Windows 中带有可爱爆裂声的气球中。
于 2015-12-22T22:50:58.603 回答