Frage

Ich habe ein QTableWidget und 6 QPushBotton Ich möchte sie auf diese Weise in ein Layout bringen

enter image description here

nur ein kleiner Abstand zwischen den Bottons

Aber mit QGridLayout Lass es so aussehen

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)

Ich habe es versucht setRowStretch(i, 0), setVerticalSpacing(0) aber es hat nicht geholfen!

Ich habe auch verwendet QGridLayout Und QVBoxLayout Für die Bottons-Gruppe funktioniert es, aber alle Buttons sind unten ausgerichtet, obwohl ich es verwendet habe AlignTop für jedes Element und für das Layout

War es hilfreich?

Lösung

Sie müssen nur eine hinzufügen Abstandshalter in deinem Layout:

enter image description here

Der QSpacerItem Die Klasse stellt Leerraum in einem Layout bereit.

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

Jeder zusätzliche Platz im Layout wird vom Abstandshalter „absorbiert“, wodurch andere Widgets ausgerichtet bleiben.

Andere Tipps

Fügen Sie unterhalb der Löschschaltfläche ein Qlabel("") hinzu.Dadurch werden sie genau so gestaltet, wie Sie es möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top