Source code for pyside_demo.gui.window

from PySide6 import QtGui
from PySide6.QtWidgets import QHBoxLayout, QMainWindow, QStackedWidget, QWidget

from pyside_demo.gui.data import DataWidget
from pyside_demo.gui.graph import GraphWidget
from pyside_demo.gui.home import HomeWidget
from pyside_demo.gui.map import MapWidget
from pyside_demo.gui.settings import SettingsWidget
from pyside_demo.gui.sidebar import SideBar
from pyside_demo.gui.table import TableWidget
from pyside_demo.gui.top_menu import create_menu_bar
from pyside_demo.model.table import TableModel
from pyside_demo.resources import rc_resources  # noqa: F401
from pyside_demo.resources.ui_mainwindow import Ui_MainWindow


[docs] class MainWindow(QMainWindow): def __init__(self): super().__init__() self._ui = Ui_MainWindow() self._ui.setupUi(self) self.setWindowTitle("PySide Demo") icon = QtGui.QIcon(":/icons/deltodon-logo.png") self.setWindowIcon(icon) self.setWindowTitle("PySide Demo") self.setGeometry(100, 100, 800, 600) create_menu_bar(self) # Create main widget and layout main_widget = QWidget() main_layout = QHBoxLayout(main_widget) main_layout.setContentsMargins(0, 0, 0, 0) main_layout.setSpacing(0) # Create sidebar self.sidebar = SideBar() self.sidebar.setObjectName("sidebar") sidebar_button_functions = [ ("Home", self.show_home), ("Data", self.show_data), ("Table", self.show_table), ("Map", self.show_map), ("Graph", self.show_graph), # ("New File", self.new_file), # ("Open File", self.open_file), # ("Search", self.search_files), ("Full Screen", self.toggle_full_screen), ("Settings", self.show_settings), ] for label, func in sidebar_button_functions: self.sidebar.on_click(label, func) # Create table model self.table_model = TableModel() # Create content area self.content_area = QStackedWidget() # Create home widget self.home_dashboard = HomeWidget() self.content_area.addWidget(self.home_dashboard) # Create data widget self.data_widget = DataWidget(self.table_model) self.content_area.addWidget(self.data_widget) # Create table widget self.table_widget = TableWidget(self.table_model) self.content_area.addWidget(self.table_widget) # Create map widget self.map_widget = MapWidget() self.content_area.addWidget(self.map_widget) # Create graph widget self.graph_widget = GraphWidget() self.content_area.addWidget(self.graph_widget) # Create settings widget self.settings_widget = SettingsWidget() self.content_area.addWidget(self.settings_widget) # Add sidebar and content area to main layout main_layout.addWidget(self.sidebar) main_layout.addWidget(self.content_area) # Set central widget self.setCentralWidget(main_widget)
[docs] def show_home(self): self.content_area.setCurrentWidget(self.home_dashboard)
[docs] def show_data(self): self.content_area.setCurrentWidget(self.data_widget)
[docs] def show_table(self): self.content_area.setCurrentWidget(self.table_widget)
[docs] def show_map(self): self.content_area.setCurrentWidget(self.map_widget)
[docs] def show_graph(self): self.content_area.setCurrentWidget(self.graph_widget)
[docs] def show_settings(self): self.content_area.setCurrentWidget(self.settings_widget)
[docs] def new_file(self): print("New File")
[docs] def open_file(self): print("Open File")
[docs] def search_files(self): print("Search")
[docs] def toggle_full_screen(self): if self.isFullScreen(): self.showNormal() else: self.showFullScreen()