Layout con pestañas QTabWidget¶

El último tipo de disposición que veremos es con pestañas utilizando un QTabWidget, se trata de una variante del apilado con un control más visual. Esta variante sí hereda de la clase QWidget y por tanto no requiere un dummy widget:
from PySide6.QtWidgets import (
QApplication, QMainWindow, QLabel, QTabWidget)
import sys
class Caja(QLabel):
def __init__(self, color):
super().__init__()
self.setStyleSheet(f"background-color:{color}")
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# creamos un layout de pestañas
tabs = QTabWidget()
# Añadimos varios widgets como pestañas con nombres
tabs.addTab(Caja("orange"), "Uno")
tabs.addTab(Caja("magenta"), "Dos")
tabs.addTab(Caja("purple"), "Tres")
tabs.addTab(Caja("red"), "Cuatro")
# asignamos las pestañas como widget central
self.setCentralWidget(tabs)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Algunas opciones interesantes de este widget es que podemos modificar la posición de las pestañas:
tabs.setTabPosition(QTabWidget.West) # West, East, North, South
O hacer que las pestañas se puedan arrastrar para cambiar el orden:
tabs.setMovable(True)
Y con esto acabamos el repaso de los layouts esenciales de Qt.
Última edición: 22 de Marzo de 2021