Comment définir la taille initiale de widget en PyQt de plus de 2/3rds de l'écran

Dans la fenêtre principale, j'ai une centrale widget qui a une taille normale, et je voudrais de l'initialiser à cette taille. Cependant, je ne veux pas qu'il soit fixé à cette taille; l'utilisateur doit être en mesure de réduire ou les agrandir.

La Documentation de Qt stipule que:

Remarque: La taille de haut niveau, les widgets sont limitées à des 2/3 de la
bureau de la hauteur et de la largeur. Vous pouvez redimensionner() du widget manuellement si
ces limites sont insuffisantes.

Mais je suis incapable d'utiliser le resize méthode prescrite.

Minimales suivantes exemple illustre bien le problème: Si la largeur et la hauteur est donnée par w et h est inférieur aux 2/3 de celle de l'écran, la fenêtre devient la taille attendue. S'ils sont supérieurs, la fenêtre se met un peu tronquée de la taille.

#!/usr/bin/env python
from PyQt4 import QtCore, QtGui
import sys
w = 1280; h = 720
app = QtGui.QApplication (sys.argv [1:])
frm = QtGui.QFrame ()
frm.sizeHint = lambda: QtCore.QSize (w, h)
win = QtGui.QMainWindow ()
win.setCentralWidget (frm)
win.show ()
sys.exit (app.exec_ ())
  • Monkey patching méthodes sur des bibliothèques c++ fonctionne rarement. Avez-vous essayé d'utiliser l'héritage afin de remplacer la sizeHint méthode à la place?
  • sizeHint est ajouté avec succès à l'objet; si la largeur et la hauteur est inférieure à 2/3 de l'écran, le widget obtient la bonne taille. (Cette contrainte est codé en dur dans Qt)
InformationsquelleAutor RolKau | 2015-08-14