Подтвердить что ты не робот

Как найти размер экрана/рабочего стола в Qt, чтобы я мог отображать уведомление на рабочем столе?

Я хочу закодировать окно уведомления в правом нижнем углу рабочего стола, поэтому он работает как уведомления Skype, когда кто-то приходит в Интернет. Может ли кто-нибудь помочь мне получить размер экрана на рабочем столе, поэтому я могу разместить окно уведомления в правом нижнем углу с помощью моего приложения Qt?

4b9b3361

Ответ 1

Вы можете использовать QDesktopWidget

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

Ответ 2

QScreen class (с Qt 5.0) предоставляет информацию о размере экрана (логического и физического), ориентации и сигналов для изменений.

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

Ответ 3

Вы не указали, на какой платформе вы работаете, но на некоторых платформах есть API для показа уведомлений. Лучше всего использовать их, когда они доступны, потому что нижний правый, если экран может быть не соответствующим. Вы можете отказаться от krammer answer.

В GNOME, например, пользователь может делать уведомления на определенном экране или выбирать вообще не показывать их, пока они не нажмут на значок в системном трее. libnotify API предоставляет разработчику доступ к этой функции.

Говоря о системных лотках, вы можете захотеть вместо этого использовать QSystemTrayIcon. Это сделало бы UI немного другим, но имеет независимый от платформы Qt API, который работает для GNOME, KDE, MacOS, Windows и, возможно, других платформ. Он также имеет метод showMessage для отображения сообщений способом, родным для платформы, например, в воздушном шаре с симпатичным звуком для звука некоторые версии Windows.