Python PyQt5 - Gibt es einem Grid Layout einen Paltzhalter wie z.b. das addStretch() aus dem QBoxLayout?
Hallo.
Ich bin gerade dabei eine kleine Gui für ein bestehendes Python Programm zu schreiben. Damit das Fenster eine Saubere Anordnung hat würde ich die verschiedenen Elemente in Grid-Layout packen. Dabei hätte ich gerne eine leere Zeile um eine Trennung verschiedener Bereiche darzustellen. Hätte das zuvor mit mehreren horizontalen Layouts in einem vertikalen Layout versucht (mit entsprechenden addstretch als Trennzeilen), aber da waren die QLabels immer verschieden Lang. Gibt es in einem GridLayout eine Möglichkeit eine leere Zeile einzufügen?
1 Antwort
Ich verwende Qt in Verbindung mit C++, aber ich vermute, dass das übertragbar ist.
Du kannst bei einem Grid Layout den rowStretch setzen. Die Breite von irgendwelchen Labels kannst du auch direkt setzen (setFixedWidth()).
Danke. Jetzt hab ich gesehen das es funktionieren würde wenn andere addStretch nicht rein mache. Das Fenster ist noch in der Entstehung und ich hab natürlich dummerweise nicht den ganzen Code geschrieben, weil ich die Erfahrung gemacht hab das wenn ich zuviel code schreibe mir niemand mehr Antwortet. Im ganzen Code bette ich das Grid Layout in ein Vertikales Layout ein bei dem noch Stretches drin sind. Wenn ich die rausnehme funktioniert das im GridLayout und wenn ich die drin lasse nicht mehr. Vielen Dank für deine Hilfe.
So funktioniert es leider nicht, weil ein addStretch unten dran ist:
# Layout's definieren
layout_zeile_1 = QHBoxLayout()
layout_grid = QGridLayout() # Kommt in Zeile 1 rein
layout_zeile_2 = QHBoxLayout()
vertikales_Layout.addLayout(layout_zeile_1) # Zum Hauptlayout ein Horizontales Layout hinzufügen
layout_zeile_1.addLayout(layout_grid) # Dem Zeile 1 Layout das Grid Layout hinzufügen
vertikales_Layout.addStretch(1) # Unter dem Grid Layout einen Abstand einfügen
vertikales_Layout.addLayout(layout_zeile_2)
vertikales_Layout.addStretch(1)
# Widgets für Grid definieren
lbl1 = QLabel('Obere Toleranz der Zufallszahlen defninieren: ')
lineEdit1 = QLineEdit()
lbl2 = QLabel('Untere Toleranz der Zufallszahlen defninieren:')
lineEdit2 = QLineEdit()
lbl3 = QLabel('Menge der gewünschten Zufallszahlen:')
lineEdit3 = QLineEdit()
# Widgets für Grid hinzufügen
layout_grid.addWidget(lbl1,1,1)
layout_grid.addWidget(lineEdit1,1,2)
layout_grid.addWidget(lbl2,2,1)
layout_grid.addWidget(lineEdit2,2,2)
layout_grid.setRowStretch(3,1)
layout_grid.addWidget(lbl3,4,1)
layout_grid.addWidget(lineEdit3,4,2)
Hi. Danke für die Antwort. Bin leider im Programmieren Allgemein noch nicht recht gut. Hätte das mit dem rowStretch versucht, aber bekomms zumindest auf Anhieb nicht hin.
Hätte so und anders probiert wie ich es in der 3. letzten Zeile geschrieben hab.
Ich weiß C++ ist anders als Python, aber ein C Programmierer hat mir schon mal recht schnell helfen können.
Hast du eine Idee wie ich das rowStretch richtig anwenden könnte?
Aber auch wenn nicht. Vielen Dank für deine Antwort. Jetzt hab ich zumindest mal einen Anhaltspunkt nach was ich suchen muss.