Wenn ich ein QGridLayout erstelle und ein paar Widgets hinzufüge, dehnen sich einige der Widgets nicht aus, um den Abschnitt des Layouts zu füllen, der sie enthält.Warum reichen einige Widgets nicht aus, um den maximalen Platz in einem Layout zu füllen?
class Grid(QGridLayout):
def __init__(self, grid_widget):
arrow = QPixmap("icons/arrow.png") #initial image is facing up
self.arrows = []
locs = [(0,1),
(0,2),
(1,2),
(2,2),
(2,1),
(2,0),
(1,0),
(0,0)]
for rot in range(len(locs)):
transform = QTransform().rotate(45*rot)
icon = arrow.transformed(transform, Qt.SmoothTransformation)
self.arrows.append(ExpandButton(icon, rot, grid_widget)) #ExpandButton inherits from QPushButton
for i, loc in enumerate(locs):
self.addWidget(self.arrows[i], loc[0], loc[1])
self.addWidget(grid_widget, 1, 1)
Wie Sie die QPushButtons an den Seiten sehen können, nicht strecken das Layout wie die QPushButtons an der Spitze zu füllen. Gibt es eine Möglichkeit, dies zu beheben, so dass sich die QPushButtons an den Seiten vertikal ausdehnen, um das Layout zu füllen, so wie sich die oben liegenden horizontal ausdehnen, um das Layout dort zu füllen?
'button.setSizePolicy (QSizePolicy.Expanding, QSizePolicy.Expanding)'? – furas
@furas Diese Lösung funktioniert, danke! Können Sie das unten posten, damit ich es akzeptieren kann? Ich hatte das schon früher versucht, als ich die Knöpfe nicht als eigene Klasse hatte, und es hat nicht funktioniert, also habe ich es nie wieder versucht. –
@furas Weißt du auch, warum Widgets nicht automatisch den maximalen Speicherplatz ausfüllen? –