2013-04-29 11 views
17

Ich bin neu in Qt, also frage ich mich, ob es eine Möglichkeit gibt, die Größe von QMainWindow auf (zum Beispiel) 70% des Desktops des Benutzers einzustellen.
Ich versuchte den Stretch-Faktor, aber es hat nicht funktioniert. QWidget::setFixedSize funktionierte aber nur mit einer Pixelzahl, denke ich.Qt: Größe von QMainWindow einstellen

+1

Siehe diesen Link: Und Sie 70% davon berechnen kann. –

+0

amir weitermachen und als Antwort posten. – UmNyobe

+0

okay Danke ich werde das versuchen :) – dadod2

Antwort

19

Dank Amir eas. Das Problem ist behoben. Hier ist der Code für sie:

#include <QDesktopWidget> 
#include <QMainWindow> 
... 
QDesktopWidget dw; 
MainWindow w; 
... 
int x=dw.width()*0.7; 
int y=dw.height()*0.7; 
w.setFixedSize(x,y); 
+2

Dies wird nicht so gut für Multi-Monitor-Setup funktionieren: \ Irgendwelche Ideen dafür? – chwi

+2

@Wilhelmsen: Sie können 'QDesktiopWidget :: primaryScreen()' wie in der Antwort auf diese Frage verwenden: http://stackoverflow.com/questions/17893328/qt-getting-the-screen-resolution-without-the-extended -Monitor – vsz

4

Sie die availableGeometry(QWidget*) Methode in QDesktopWidget verwenden können, dies wird Ihnen die Geometrie des Bildschirms, dass dieses Widget aktuell ist.
Zum Beispiel:

QRect screenSize = desktop.availableGeometry(this); 
this->setFixedSize(QSize(screenSize.width * 0.7f, screenSize.height * 0.7f)); 

Wo this den Mainwindow-Zeiger ist. Dies funktioniert, wenn mehrere Bildschirme verwendet werden.

28

Irgendwo in Ihrem QMainWindow Konstruktor, dies tun:

resize(QDesktopWidget().availableGeometry(this).size() * 0.7);

Dies wird das Fenster auf 70% des verfügbaren Platzes auf dem Bildschirm ändern.