Comment fonctionne exactement addStretch travail dans QBoxLayout?
Je suis en train de faire un PyQt4 tutoriel sur la boîte de mises en page. Mais je ne comprends pas comment addStretch
œuvres.
- Si j'utilise
vbox.addStretch(1)
ethbox.addStretch(1)
, les deux boutons apparaissent en bas à droite. Pourquoi? - si j'ai fait un commentaire
vbox.addStretch(1)
ethbox.addStretch(1)
, les deux boutons s'affichent dans le centre de ma fenêtre, et ils sont déformables horizontalement mais pas verticalement. Pourquoi? - theres aucune différence si je change la valeur "1"... donc, quelle est la valeur?
Ci-dessous le code que j'utilise:
import sys
from PyQt4 import QtGui
class BoxLayout(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setWindowTitle('box layout')
ok = QtGui.QPushButton("OK")
cancel = QtGui.QPushButton("Cancel")
vbox = QtGui.QHBoxLayout()
vbox.addStretch(1)
vbox.addWidget(ok)
vbox.addWidget(cancel)
hbox = QtGui.QVBoxLayout()
hbox.addStretch(1)
hbox.addLayout(vbox)
self.setLayout(hbox)
self.resize(100, 100)
app = QtGui.QApplication(sys.argv)
qb = BoxLayout()
qb.show()
sys.exit(app.exec_())
OriginalL'auteur Hubschr | 2013-12-08
Vous devez vous connecter pour publier un commentaire.
La addStretch méthode ajoute un QSpacerItem à la fin d'une zone de mise en page. Un QSpacerItem est réglable en espace vide.
À l'aide de
vbox.addStretch(1)
va ajouter un zéro-largeur de l'entretoise éléments'étend verticalement à partir du haut de la mise en page vers le bas.
À l'aide de
hbox.addStretch(1)
va ajouter un zéro-largeur de l'entretoise éléments'étend horizontalement à partir de la gauche de la mise en page rightwards.
Sans étirement, la mise en page sera déterminé par le
sizePolicy
des widgets. Pour un QPushButton, c'est
QSizePolicy.Fixe
pour la dimension verticale, et
QSizePolicy.Minimum
pour la dimension horizontale. Si vous vouliez que les boutons à s'étendre dans
les deux directions, vous pourriez faire quelque chose comme ceci:
L'argument passé à addStretch modifie le facteur d'étirement. Si vous
ajouter un deuxième tronçon après le bouton ok:
vous verrez que la deuxième entretoise élément croît deux fois plus vite que la
d'abord. Et si vous définissez le premier tronçon à zéro, il ne grandit pas à
tous les.
Si vous souhaitez plus d'informations, consultez la Mise En Page De Gestion De article dans le Qt docs. C'est aussi une bonne idée d'utiliser Qt Designer à expérimenter avec des trucs de ce genre, car il vous donne un retour visuel immédiat et vous montre toutes les valeurs par défaut des différentes propriétés.
OriginalL'auteur