J'ai une application avec beaucoup de qdockwidgets a > et sans widget central. Je tiens à définir certaines de ces QdockWidgets Taille initiale ( taille au début de l'application), mais je ne veux pas limiter leurs tailles min / max.
Comment faire? Par exemple, j'ai besoin de définir la taille initiale 150x75 à l'une d'elles. J'ai essayé des méthodes évidentes (telles que qwidget.Resize ( ) relatif au contenu du widget Dock), mais cela n'a pas fonctionné du tout. p>
Voici un modèle de situation simplifié: p>
3 Réponses :
Les dockwidgets seront intégrés à la disposition de la fenêtre principale, de sorte que toute tentative de redimensionnement sera ignorée.
La solution de contournement standard pour cela consiste à créer une sous-classe du widget de contenu et de répliquer son Samethint CODE>: P>
class TreeWidget(QtGui.QTreeWidget):
def sizeHint(self):
return QtCore.QSize(150, 75)
mw.dockWdg2 = QtGui.QDockWidget(mw)
mw.content2 = TreeWidget()
mw.dockWdg2.setWidget(mw.content2)
Utilisez la fonction FixeSize, comme SetfixedWidth / Setfixedheight. P>
Cela contient le widget à exactement cette taille; L'affiche originale voulait juste la taille par défaut, pas la taille minimale et maximale à définir.
Je pense que je pense que la fonction Code source P> TailleHint () code> basée sur la taille de Mainwindow est meilleure que de retourner une taille fixe.
// size hint
QSize RenderWindow::sizeHint() const
{
float width = MainWindow::instance()->width() * 0.3f;
float height = MainWindow::instance()->height() * 0.65f;
return QSize( width, height);
}
qmainwindow code> doit toujours avoir un widget central, mais vous pouvez essayer de définir sa taille sur 0.
@alexisdm, eh bien, comment faire ça? Pouvez-vous s'il vous plaît poster du code qui peut m'aider? Merci!
Par exemple, avec
mw.sepentralqwidget (qwidget ()) code> et
mw.centralwidget (). SetfixedSize (0,0) code>. Cette question montre le type de problèmes que vous pouvez avoir sans régler le widget central.