import sys from PySide6.QtWidgets import ( QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLabel, QSplitter, QStackedWidget ) from PySide6.QtCore import Qt, Slot from PySide6.QtGui import QPalette, QColor class PlaceholderWidget(QWidget): """A custom widget to display a colored background with centered text.""" def __init__(self, text: str, color: str, parent=None): super().__init__(parent) self.setAutoFillBackground(True) self.set_color(color) self.label = QLabel(text) self.label.setAlignment(Qt.AlignmentFlag.AlignCenter) font = self.label.font() font.setPointSize(24) self.label.setFont(font) layout = QVBoxLayout(self) layout.addWidget(self.label) self.setLayout(layout) def set_text(self, text: str): self.label.setText(text) def set_color(self, color: str): palette = self.palette() palette.setColor(QPalette.ColorRole.Window, QColor(color)) self.setPalette(palette) def set_text_color(self, color: str): palette = self.label.palette() palette.setColor(QPalette.ColorRole.WindowText, QColor(color)) self.label.setPalette(palette) class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Bejcownik 0.1.0") self.resize(1920, 1080) # Main layout central_widget = QWidget() main_layout = QHBoxLayout(central_widget) self.setCentralWidget(central_widget) # Main splitter self.view_splitter = self._create_main_content_area() # Settings panel self.settings_panel = self._create_settings_panel() main_layout.addWidget(self.view_splitter) main_layout.addWidget(self.settings_panel) def _create_main_content_area(self) -> QWidget: # main_panel = QWidget() view_splitter = QSplitter(Qt.Orientation.Horizontal) pink_widget = PlaceholderWidget("Pink", "#8A004C") pink_widget.set_text_color("#FFFFFF") gray_widget = PlaceholderWidget("Gray", "#808080") gray_widget.set_text_color("#FFFFFF") purple_widget = PlaceholderWidget("Purple", "#800080") purple_widget.set_text_color("#FFFFFF") view_splitter.addWidget(pink_widget) view_splitter.addWidget(gray_widget) view_splitter.addWidget(purple_widget) view_splitter.setSizes([0, 1, 0]) return view_splitter def _create_settings_panel(self) -> QWidget: settings_panel = QWidget() settings_layout = QVBoxLayout(settings_panel) green_widget = PlaceholderWidget("Green", "#008000") green_widget.set_text_color("#FFFFFF") green_widget.setMinimumWidth(400) green_widget.setMinimumHeight(200) settings_layout.addWidget(QLabel("Ustawienia")) settings_layout.addWidget(green_widget) settings_layout.addStretch() return settings_panel if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())