2013-04-29 14 views
17

Jestem nowy w Qt, więc zastanawiam się, czy istnieje sposób na ustawienie rozmiaru QMainWindow na (na przykład) 70% pulpitu użytkownika.
Próbowałem współczynnik rozciągnięcia, ale to nie zadziałało. QWidget::setFixedSize działa, ale myślę, że tylko z liczbą pikseli.Qt: Ustaw rozmiar QMainWindow

+1

Zobacz ten link: I Czy można obliczyć, że 70%. –

+0

amir i napisz jako odpowiedź. – UmNyobe

+0

ok, dzięki. Spróbuję tego :) – dadod2

Odpowiedz

19

Dzięki Amir eas. Problem jest rozwiązany. Oto kod dla niego:

#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

To nie zadziała tak dobrze dla konfiguracji z wieloma monitorami: \ Jakieś pomysły na to? – chwi

+2

@Wilhelmsen: możesz użyć 'QDesktiopWidget :: primaryScreen()' jak w odpowiedzi na to pytanie: http://stackoverflow.com/questions/17893328/qt-getting-the-screen-resolution-without-extended -monitor – vsz

4

Można użyć metody availableGeometry(QWidget*) w QDesktopWidget, to daje geometrii ekranu, że ten widget jest obecnie.
Na przykład:

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

Gdzie this jest wskaźnik MainWindow. To będzie działać, gdy używasz wielu ekranów.

28

Gdzieś w konstruktorze QMainWindow, to zrobić:

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

Spowoduje to zmianę rozmiaru okna do 70% dostępnego miejsca na ekranie.

Powiązane problemy