Wie genau funktioniert addStretch Arbeit in QBoxLayout?
Mache ich eine PyQt4-tutorial über Feld-layouts. Aber ich verstehe nicht, wie addStretch
funktioniert.
- Wenn ich
vbox.addStretch(1)
undhbox.addStretch(1)
die beiden Schaltflächen rechts unten. Warum? - wenn ich kommentieren
vbox.addStretch(1)
undhbox.addStretch(1)
aus, werden die beiden Schaltflächen erscheinen in der Mitte von meinem Fenster, und Sie sind verformbar horizontal, aber nicht vertikal. Warum? - es gibt keinen Unterschied wenn ich den Wert "1"... also, was bedeutet der Wert?
Unten ist der code, den ich verwende:
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_())
InformationsquelleAutor der Frage Hubschr | 2013-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den addStretch Methode fügt eine QSpacerItem an das Ende der box-layout. Ein QSpacerItem ist ein verstellbarer leeren Raum.
Mit
vbox.addStretch(1)
wird, fügen Sie eine null-Breite spacer-Element, dasdehnt sich vertikal aus der Spitze des Lay-Outs nach unten.
Mit
hbox.addStretch(1)
wird, fügen Sie eine null-Breite spacer-Element, dasdehnt sich horizontal von der linken Seite aus dem layout rechts.
Ohne stretch, das layout wird bestimmt durch die
sizePolicy
von den widgets. Für ein QPushButton, das ist
QSizePolicy.Behoben
für die vertikale dimension, und
QSizePolicy.Minimum
für die horizontale dimension. Wenn Sie wollte, die Tasten zu vergrößern
beide Richtungen, die man tun könnte etwas wie diese:
Argument übergeben addStretch änderungen der stretch-Faktor. Wenn Sie
fügen Sie eine zweite Strecke, nachdem Sie die Taste ok:
werden Sie sehen, dass die zweite spacer Element wächst doppelt so schnell wie die
erste. Und wenn Sie den ersten Teil der Strecke auf null, es wird nicht wachsen
alle.
Wenn Sie mehr Informationen möchten, finden Sie in der Layout-Management Artikel in der Qt-Doku. Es ist auch eine gute Idee, Qt Designer Experimentieren mit Sachen wie diese, wie Sie Ihnen sofortige visuelle feedback und zeigt Ihnen alle default-Werte der verschiedenen Eigenschaften beteiligt.
InformationsquelleAutor der Antwort ekhumoro