2016-11-10 1 views
0

Ich habe ein Widget-Fenster mit einem langen QString, wenn ich adjustsize() in 4K-Monitor die Fenstergröße ist 1700x500. Bei Verwendung des Monitors 1024 x 768 beträgt die Fenstergröße 850 x 500, wenn ich adjustsize() verwende. Das Fenster sizePolicy ist expanding. Welche Funktion soll mein Widget verwenden, um alle Ressourcen in einem Monitor mit niedriger Auflösung zu verwenden? Im Beispiel möchte ich die gesamte Breitenauflösung verwenden, also ist die Fensterbreite bei 1024 Monitor auch so groß wie die Monitorgröße.Qt 4.8 Adjust Fenster voller Auflösung Monitor

Dies ist der Code i

void ConfigDialog::InitializeWindowSize() 
{ 
    QDesktopWidget desktop; 
    QRect screenGeometry = QApplication::desktop()->availableGeometry(desktop.screenNumber(this)); 
    this->setMaximumSize(screenGeometry.width(), screenGeometry.height()); 
    this->setGeometry(0,0,screenGeometry.width(), screenGeometry.height()); 
    if(this->width() > 1024 && screenGeometry.width() <= 1024) 
    { 
     this->setGeometry(QApplication::desktop()->availableGeometry(desktop.screenNumber(this)));  
    } 
    adjustSize(); 
} 

Antwort

1

Sie die verfügbare Geometrie des Bildschirms auf Ihrem Widget ist, verwenden Sie haben aus durch den Aufruf QDesktopWidget :: availableGeometry() finden, wie im Beispiel unten gezeigt:

#include <QApplication> 
#include <QDesktopWidget> 
#include <QLabel> 

int main(int argc, char ** argv) 
{ 
    QApplication app(argc, argv); 

    QLabel * lab = new QLabel("Hello!"); 

    lab->setGeometry(qApp->desktop()->availableGeometry(lab)); // make the label take up the entire screen! 

    lab->show(); 

    return app.exec(); 
} 
+0

Statt neue Instanz von 'QDesktopWIdget' würde ich empfehlen,' app' die Instanz verwendet wird, wie in 'app.desktopWidget() availableGeometry()' –

+0

vereinbart -. ich werde mein Beispiel ändern, dank ! –

Verwandte Themen