2013-09-24 15 views

Odpowiedz

54

Można użyć QDesktopWidget

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

Bądź ostrożny, to prawdopodobnie lepiej użyć geometrii _available_: http://doc.qt.io/qt-5/qdesktopwidget.html#availableGeometry –

+0

myślę, że może być zainteresowany w QDesktopWidget :: rozmiarze() Metoda zamiast: dla mnie, która zwróci rozmiar dwóch monitorów ułożonych razem, ponieważ są skonfigurowane w ustawieniach wyświetlania. Wywołanie "screenGeometry" daje tylko wymiary jednego monitora. –

5

Nie podano jakiej platformie masz rozwija, ale niektóre platformy mają API do wyświetlania powiadomień. Najlepiej używać tych, gdy są dostępne, ponieważ w prawym dolnym rogu, jeśli ekran może nie być odpowiedni. Możesz powrócić na krammer's answer.

w GNOME, na przykład, użytkownik może dokonać powiadomienia pojawiają się na danym ekranie, lub zdecydować się nie pokazać ich w ogóle, dopóki nie kliknąć na ikonę w zasobniku systemowym. Interfejs API libnotify daje programiście dostęp do tej funkcji.

Mówiąc o tacach systemowych, warto rozważyć użycie zamiast tego QSystemTrayIcon. To sprawi, że interfejs użytkownika będzie trochę inny, ale ma niezależny od platformy interfejs API Qt, który działa dla GNOME, KDE, MacOS, Windows i prawdopodobnie innych platform. Posiada również showMessage metodę wyświetlania wiadomości w macierzystym sposób dla platformy, takie jak w balonie z cute słychać trzaski w niektórych wersjach systemu Windows.

+0

Windows i Mac –

+0

@SanathReddy: Nie próbowałem, ale może to będzie robić to, co chcesz: https://github.com/KDE/snorenotify –

7

QScreen klasy (od Qt 5,0) zawierają informacje o rozmiarze ekranu (logiczne i fizyczne) orientacja oraz sygnały dla zmian.

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

Czy takie podejście również sugerowana dla warunkowego załadunku 'stron QML' (na przykład różne strony 'QML' dla różnych rozdzielczości ekranu/orientacji) zarówno w systemie Android, jak i Linux (Desktop/Embedded)? – KernelPanic

Powiązane problemy