2023-09-13 03:40:02 +08:00

44 lines
1.5 KiB
Python

from PySide6.QtCore import Qt
from PySide6.QtWidgets import QListWidgetItem, QMainWindow, QSizePolicy, QWidget
from .mainWindow_ui import Ui_MainWindow
from .tabs.tabProjects import TabProjects
class MainWindow(Ui_MainWindow, QMainWindow):
TabWidgetTypeRole = Qt.ItemDataRole.UserRole + 10
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.tabsListWidget.itemClicked.connect(self.setItemSelected)
self.tabsListWidget.currentItemChanged.connect(self.switchTab)
projectsItem = QListWidgetItem("Projects", self.tabsListWidget)
projectsItem.setData(self.TabWidgetTypeRole, TabProjects)
self.tabsListWidget.addItem(projectsItem)
self.tabsListWidget.setMaximumWidth(
self.tabsListWidget.sizeHintForColumn(0) + 10
)
self.tabsListWidget.setCurrentIndex(self.tabsListWidget.model().index(0, 0))
def setItemSelected(self, item: QListWidgetItem):
item.setSelected(True)
def switchTab(self):
item = self.tabsListWidget.currentItem()
tabWidgetType = item.data(self.TabWidgetTypeRole)
tabWidget: QWidget = tabWidgetType(self)
# tabWidget.setSizePolicy(
# QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred
# )
self.centralWidget().layout().removeWidget(self.tabWidget)
self.tabWidget.deleteLater()
self.centralWidget().layout().addWidget(tabWidget)
self.tabWidget = tabWidget