Question

J'ai un QTableWidget et 6 QPushBotton je veux les mettre dans une mise en page de cette façon

enter image description here

juste un petit espacement entre les Boutons

Mais À L'Aide De QGridLayout faire ça ressemble à ça

enter image description here

Code:

    tab_Memory_layout = QtGui.QGridLayout()
    tab_Memory_layout.setVerticalSpacing(0)
    tab_Memory_layout.setAlignment(QtCore.Qt.AlignTop)
    tab_Memory_layout.addWidget(self.MemoryTable, 0, 0)
    tab_Memory_buttons = QtGui.QGridLayout()
    tab_Memory_buttons.setSpacing(5)
    tab_Memory_buttons.addWidget(self.pushButton_add_memory, 0, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_up_memory, 1, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_down_memory, 2, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_top_memory, 3, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_bottom_memory, 4, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_delete_memory, 5, 0, QtCore.Qt.AlignTop)
    tab_Memory_layout.addLayout(tab_Memory_buttons, 0, 1)
    self.tab_Memory.setLayout(tab_Memory_layout)

J'ai essayé le setRowStretch(i, 0), setVerticalSpacing(0) mais il n'a pas aidé!

J'ai aussi utilisé QGridLayout et QVBoxLayout pour les Boutons du Groupe, il fonctionne, mais tous les Boutons sont alignés au Fond, bien que j'ai utilisé AlignTop pour chaque élément et pour la Mise en page

Était-ce utile?

La solution

Vous avez juste besoin d'ajouter un Entretoise à votre disposition:

enter image description here

L' QSpacerItem la classe fournit de l'espace vide dans une mise en page.

verticalSpacer = QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Expanding)
tab_Memory_buttons.addItem(verticalSpacer, 6, 0, QtCore.Qt.AlignTop)

Tout espace supplémentaire dans la mise en page sera "absorbé" par l'entretoise, ce qui empêchera les autres widgets alignés.

Autres conseils

Ajouter un Qlabel("") ci-dessous bouton supprimer.Cela fait d'eux comme la façon dont vous le souhaitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top