2013-04-29 11 views
17

Je suis nouveau à Qt, donc je me demande s'il y a un moyen de définir la taille d'un QMainWindow à (par exemple) 70% du bureau de l'utilisateur.
J'ai essayé le facteur d'étirement mais cela n'a pas fonctionné. QWidget::setFixedSize travaillé mais seulement avec un nombre de pixels, je pense.Qt: Régler la taille de QMainWindow

+1

Voir ce lien: Et vous pouvez calculer 70% de cela. –

+0

amir allez-y et postez comme réponse. – UmNyobe

+0

Merci ok je vais essayer :) – dadod2

Répondre

19

Merci à Amir. Eas Le problème est résolu. Voici le code pour elle:

#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

Cela ne fonctionnera pas si bien pour l'installation de plusieurs moniteurs: \ Des idées pour cela? – chwi

+2

@Wilhelmsen: vous pouvez utiliser 'QDesktiopWidget :: primaryScreen()' comme dans la réponse à cette question: http://stackoverflow.com/questions/17893328/qt-getting-the-screen-resolution-without-the-extended -moniteur – vsz

4

Vous pouvez utiliser la méthode availableGeometry(QWidget*) dans QDesktopWidget, cela vous donnera la géométrie de l'écran que ce widget est actuellement.
Par exemple:

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

this est le pointeur MainWindow. Cela fonctionne lorsque vous utilisez plusieurs écrans.

28

Quelque part dans votre constructeur QMainWindow, faites ceci:

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

Cela redimensionner la fenêtre à 70% de l'espace disponible à l'écran.

Questions connexes