web-dev-qa-db-fra.com

Qt: définir la taille de QMainWindow

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

24
dadod2

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

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

Quelque part dans votre constructeur QMainWindow, procédez comme suit:

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

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

39
muesli

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

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

this est le pointeur MainWindow. Cela fonctionnera lors de l'utilisation de plusieurs écrans.

4
user3413918