2017-11-13 3 views
0

Ich habe ein Fenster wie folgt aufgebaut:Qt5: Wie kann ich das Fenster scrollen, anstatt es zu erweitern, wenn Zeilen zu QFormLayout hinzugefügt werden? (Python 3)

vbox = QVBoxLayout() 
groupBox = QGroupBox() 
formLayout = QFormLayout() 
groupBox.setLayout(formLayout) 
vbox.addWidget(groupBox) 

Ich habe auch zwei Schaltflächen, die Zeilen hinzufügen und entfernen Sie Zeilen aus Formlayout.

Wenn ich zu viele Zeilen hinzufüge, so dass sie nicht in das definierte Fenster passen, wird das Fenster vertikal erweitert. Wenn Zeilen gelöscht werden, bleibt das Fenster in der maximierten Größe.

Ich möchte stattdessen den Bereich Bildlauf so, dass die neuen Zeilen nur innerhalb der definierten Fenstergröße angezeigt werden, und so dass das Fenster nicht erweitert wird, es sei denn, der Benutzer erweitert es manuell. Wie kann ich eine Bildlauffunktion hinzufügen und verhindern, dass sich das Fenster ausdehnt?

Antwort

0

Ich habe es herausgefunden. Sie können wie unten QScrollArea() verwenden:

vbox = QVBoxLayout() 
groupBox = QGroupBox() 
formLayout = QFormLayout() 
groupBox.setLayout(formLayout) 
scroll_area = QScrollArea() 
scroll_area.setWidgetResizeable(True) 
scroll_area.setWidget(groupBox) 
vbox.addWidget(scroll_area) 

Dieses ein Fenster erzeugt, das nicht in der Größe verändern, sondern fügt automatisch eine Bildlaufleiste, wenn mehr Zeilen Formlayout hinzugefügt werden.

Verwandte Themen