Seite 1 von 1

Ausdehnung eines QTreeWidget in einer QGroupBox in PySide6

Verfasst: Freitag 2. Oktober 2026, 10:11
von Maschinenhans
Guten Tag zusammen,

mein Problem ist, ein QTreeView Widget innerhalb eineQGroupBox ohne Rand horizintal und vertikal zu maximieren. In dem Minimalbeispiel unten ist der Aufbau aufgezeigt. Wie bekomme ich denn die Abstände des QTreeWidgets innerhalb der QGroupBox weg?

Ich hoffe die Intention ist einigermaßen klar, ansonsten einfach rückfragen. Vielen Dank für eure Mühe.

Das Minimalbeispiel:

Code: Alles auswählen

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from PySide6.QtWidgets import QApplication
from PySide6.QtWidgets import QMainWindow
from PySide6.QtWidgets import QHBoxLayout
from PySide6.QtWidgets import QWidget
from PySide6.QtWidgets import QGroupBox
from PySide6.QtWidgets import QTreeWidget
from PySide6.QtWidgets import QTreeWidgetItem

class App(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle('Problem - QTreeView in QGroupbox')
        self.resize(800, 600)

        self.create_widgets()

        self.show()


    def create_widgets(self):
        central_widget = QWidget()
        self.setCentralWidget(central_widget)

        layout = QHBoxLayout(central_widget)

        group_box = QGroupBox('Testbox', self)
        layout.addWidget(group_box)

        layout_group_box = QHBoxLayout(group_box)
   
        tree_widget = QTreeWidget(self)
        layout_group_box.addWidget(tree_widget)

        tree_widget.setRootIsDecorated(False)
        tree_widget.setColumnCount(2)
        tree_widget.setHeaderLabels(['Spalte 1', 'Spalte 2'])

        items = [
            ['Option 1', 'Wert 1'],
            ['Option 2', 'Wert 2'],
            ['Option 3', 'Wert 3'],
            ['Option 4', 'Wert 4'],
            ['Option 5', 'Wert 5'],
        ]
        
        items = [QTreeWidgetItem(row) for row in items]
        tree_widget.addTopLevelItems(items)

def main() -> None:
    app = QApplication()
    main_window = App()
    app.exec()


if __name__ == "__main__":
    main()