2013-04-29 14 views
17

Sono nuovo di Qt, quindi mi chiedo se c'è un modo per impostare le dimensioni di un QMainWindow su (per esempio) il 70% del desktop dell'utente.
Ho provato il fattore di allungamento ma non ha funzionato. QWidget::setFixedSize ha funzionato ma solo con un numero di pixel, penso.Qt: Imposta la dimensione di QMainWindow

+1

Vedere questo link: E la si può calcolare il 70% di questo. –

+0

amir andare avanti e pubblicare come risposta. – UmNyobe

+0

ok Grazie, proverò questo :) – dadod2

risposta

19

Grazie ad Amir eas. Il problema è risolto. Ecco il codice per esso:

#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

Questo non funzionerà così bene per l'installazione con più monitor: \ Qualche idea per questo? – chwi

+2

@Wilhelmsen: puoi usare 'QDesktiopWidget :: primaryScreen()' come nella risposta a questa domanda: http://stackoverflow.com/questions/17893328/qt-getting-the-screen-resolution-without-theextended -tenere sotto controllo – vsz

4

È possibile utilizzare il metodo availableGeometry(QWidget*) in QDesktopWidget, questo vi darà la geometria dello schermo che questo widget è attualmente in.
Per esempio:

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

Dove this è il puntatore MainWindow. Funzionerà quando si utilizzano più schermi.

28

Da qualche parte nel costruttore QMainWindow, fare questo:

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

Questa sarà ridimensionare la finestra per il 70% dello spazio disponibile sullo schermo.

Problemi correlati