如何在Qt中找到屏幕/桌面大小,以便显示桌面通知?

时间:2013-09-24 07:44:04

标签: qt

我想在桌面的右下角编写一个通知窗口,因此当有人上线时它会像Skype通知一样工作。有人可以帮助我获得桌面的屏幕大小,所以我可以使用我的Qt应用程序将我的通知窗口放在右下角吗?

3 个答案:

答案 0 :(得分:66)

您可以使用QDesktopWidget

 QRect rec = QApplication::desktop()->screenGeometry();
 height = rec.height();
 width = rec.width();

答案 1 :(得分:15)

QScreen class(自Qt 5.0起)提供有关屏幕大小(逻辑和物理),方向和变化信号的信息。

QScreen *screen = QGuiApplication::primaryScreen();
QRect  screenGeometry = screen->geometry();
int height = screenGeometry.height();
int width = screenGeometry.width();

答案 2 :(得分:9)

您尚未说明您正在开发哪个平台,但某些平台具有用于显示通知的API。最好在可用时使用它们,因为如果屏幕可能不合适,则右下角。你可以回到krammer的answer

例如,在GNOME中,用户可以在特定屏幕上显示通知,或选择不显示通知,直到他们单击系统托盘图标。 libnotify API使开发人员可以访问此功能。

说到系统托盘,您可能需要考虑使用QSystemTrayIcon。它会使UI略有不同,但有一个独立于平台的Qt API,适用于GNOME,KDE,MacOS,Windows和其他平台。它还有一个showMessage方法,用于以平台本机的方式显示消息,例如在某些版本的Windows中带有可爱的弹出声音的气球中。