- QMainWindow
- QWidget
- QVBoxLayout
- QWidget mit darauf aufgerufenem QScrollArea.setWidget()
- QVBoxLayout
Code: Select all
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import (
QApplication,
QLabel,
QMainWindow,
QScrollArea,
QVBoxLayout,
QWidget,
)
class MainWindow(QMainWindow):
def __init__(self) -> None:
super().__init__()
self.widget = QWidget(self)
self.setCentralWidget(self.widget)
self.vbox_outer = QVBoxLayout()
self.widget.setLayout(self.vbox_outer)
self.vbox_outer.addWidget(QLabel("TOP"))
self.scroll_area = QScrollArea(self.widget)
self.scroll_area.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
self.scroll_area.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.scroll_area.setWidgetResizable(True)
self.vertical_layout_widget = QWidget(self.scroll_area)
self.scroll_area.setWidget(self.vertical_layout_widget)
self.vbox_inner = QVBoxLayout()
self.vertical_layout_widget.setLayout(self.vbox_inner)
self.vbox_outer.addWidget(self.vertical_layout_widget)
for _i in range(1, 50):
obj = QLabel("TextLabel", self.vertical_layout_widget)
self.vbox_inner.addWidget(obj)
self.vbox_outer.addWidget(QLabel("BOTTOM"))
self.setGeometry(0, 0, 1000, 500)
self.show()
app = QApplication(sys.argv)
main = MainWindow()
sys.exit(app.exec())
Mobile version