2013-09-23 3 views
3

Si je voulais créer une fenêtre où une disposition de la grille ne couvrait pas toute la trame? Pourrais-je le faire en ajoutant une disposition horizontale à la disposition de la grille et en ajoutant un étirement à la disposition horizontale. Quand je l'essayer dans le code suivant, je reçois cette erreur:PySide/QT - Comment ajouter une disposition horizontale ou verticale à une disposition de la grille

TypeError: PySide.QtGui.QGridLayout.addLayout(): not enough arguments

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() 

Cette erreur ne se produit pas lors de l'ajout d'une disposition horizontale à une disposition verticale ou vice-versa.

Merci pour l'aide!

Répondre

2

Vous devez ajouter la disposition à QGridLayout dans une ligne et une colonne spécifique conformément à la signature de méthode here.

Mais dans ce cas, je pense que vous êtes mieux ajouter la mise en page de la grille à la disposition de Vbox, et non vice versa

Ou, vous pouvez définir un tronçon de colonne pour une colonne vide dans la mise en page de grille à l'aide QGridLayout.setColumnStretch().

Questions connexes