Mon QMainWindow
contient un QGraphicsView
, qui doit avoir une largeur et une hauteur minimales. Alors, je l'ai utilisé le code suivant dans le constructeur QMainWindow
:Définition de QMainWindow au centre de l'écran
ui.graphicsView->setMinimumHeight(VIEWWIDTH);
ui.graphicsView->setMinimumWidth(VIEWWIDTH);
J'ai ensuite utilisé le code suivant pour définir QMainWindow
au centre de l'écran:
QRect available_geom = QDesktopWidget().availableGeometry();
QRect current_geom = frameGeometry();
setGeometry(available_geom.width()/2 - current_geom.width()/2,
available_geom.height()/2 - current_geom.height()/2,
current_geom.width(),
current_geom.height());
Mais ce ne sont pas mis à la centre de l'écran. Si j'omets setMinimumHeight()
et setMinimumWidth()
de QGraphicsView
, alors la fenêtre principale est placée au centre de l'écran. Comment surmonter ce problème? J'utilise Qt 4.5.2.
Merci.
Le positionnement manuel des fenêtres est généralement déconseillé. C'est le travail du gestionnaire de fenêtres de positionner les fenêtres et si votre application se centre manuellement, cela conduira à des incohérences. Par exemple sur mon système à deux têtes, où votre code placera-t-il la fenêtre? Sauf si vous avez une très bonne raison, ne pas microgérer le placement de la fenêtre. –
J'ai vu un logiciel qui commence au milieu de l'écran. Ça à l'air bon. – Donotalo