Domanda

Ho un QTableWidget e 6 QPushBotton che voglio metterli in un layout in questo modo

Inserire la descrizione dell'immagine qui

Solo una piccola spaziatura tra i bottoni

Ma usare QGridLayout Realizza che assomigli a questo

Inserire l'immagine Descrizione qui

Codice:

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

Ho provato il setRowStretch(i, 0), setVerticalSpacing(0) ma non ha aiutato!

Ho anche usato QGridLayout e QVBoxLayout per il gruppo Bottons, funziona, ma tutti i pulsanti sono allineati in basso, anche se ho usato AlignTop per ciascun elemento e per il layout

È stato utile?

Soluzione

Hai solo bisogno di aggiungere un distanziatore Nel tuo layout:

Inserire la descrizione dell'immagine qui

La classe QSpaceritem offre spazio vuoto in un layout.

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

Qualsiasi spazio extra nel layout sarà "assorbito" dal distanziatore, che manterrà altri widget allineati.

Altri suggerimenti

Aggiungi un Qlabel ("") sotto il tasto Elimina.Questo li rende come il modo in cui vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top