PySide6: QTabWidget

Python
PySide6
Autor:in

Johannes Kaisinger

Veröffentlichungsdatum

15. April 2023

In diesem Blogeintrag wollen wir die QTabWidget studieren. Viele Anwenderprogramme verwenden TabWidgets. Oft werden Einstellungen über TabWidgets organisiert.

QTabWidget

Wir wollen eine Tableiste erstellen, welche die Tabs Tab 1 und Tab 2 zur Verfügung stellt. Mit tabwidget.setTabPosition(QTabWidget.North) können wir den Ort der Tableiste kontrollieren. Dabei stehen uns die vier Möglichkeiten

  • QTabWidget.North
  • QTabWidget.East
  • QTabWidget.South
  • QTabWidget.West

zur Verfügung.

import sys

from PySide6.QtGui import(
    QAction
)

from PySide6.QtWidgets import (
    QMainWindow,
    QApplication,
    QWidget,
    QTabWidget,
    QGridLayout,
    QLabel,
    QToolBar,
)

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

        self.setMinimumSize(500, 250)
        self.setWindowTitle("Cybernetics")

        # TabWidget
        label1 = QLabel("Widget in Tab 1.")
        label2 = QLabel("Widget in Tab 2.")
        tabwidget = QTabWidget()
        tabwidget.setTabPosition(QTabWidget.North) # controls the place of the tabs
        tabwidget.addTab(label1, "Tab 1")
        tabwidget.addTab(label2, "Tab 2")
        tabwidget.currentChanged.connect(self.current_tab_changed)

        self.setCentralWidget(tabwidget)

    def current_tab_changed(self, tab_index):
        print(f"{tab_index=}")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = TestTab()
    window.show()
    sys.exit(app.exec())

Unsere Applikation sieht dann wie folgt aus.

QTabWidget.North

Eine vertikale Anordnung der Tabs am rechten Rand ist einfach durch das Ändern von der Zeile

tabwidget.setTabPosition(QTabWidget.West)

möglich.

QTabWidget.East

Auch können die Tabs am unteren Rand

QTabWidget.South

sowie am linken Rand

QTabWidget.West

angezeigt werden.

Fazit

QTabWidget ist ein guter Weg um ein Programm zu organisieren. Wie oben gezeigt ist der Aufwand für das QTabWidget minimal.

Referenzen