PySide/QT - How zum hinzufügen von horizontalen oder vertikalen layout zu einem grid-layout
Wenn ich wollte, um ein Fenster zu erstellen wo ein grid-layout nicht decken den gesamten Rahmen? Könnte ich es durch hinzufügen einer horizontalen layout mit dem grid-layout und hinzufügen eine Strecke zu den horizontalen layout. Wenn ich versuche es in den folgenden code, bekomme ich diesen Fehler:
TypeError: PySide.QtGui.QGridLayout.addLayout(): nicht genug Argumente
import sys
from PySide import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
names = ['Cls', 'Bck', '', 'Close', '7', '8', '9', '/',
'4', '5', '6', '*', '1', '2', '3', '-',
'0', '.', '=', '+']
hbox = QtGui.QHBoxLayout()
hbox.addStretch()
vbox = QtGui.QVBoxLayout()
vbox.addStretch()
grid = QtGui.QGridLayout()
grid.addLayout(vbox)
self.setLayout(grid)
self.move(300, 150)
self.setWindowTitle('Calculator')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Dieser Fehler tritt nicht auf, wenn das hinzufügen von einem horizontalen layout ein vertikales layout oder Umgekehrt.
Danke für die Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie das layout, um eine
QGridLayout
auf eine bestimmte Zeile und Spalte entsprechend der Signatur der Methode hier.Aber in diesem Fall denke ich, Sie sind besser dran, hinzufügen der raster-layout, um das vbox layout, nicht Umgekehrt
Oder konnten Sie eine Spalte stretch für eine leere Spalte im grid-layout mit QGridLayout.setColumnStretch().