Files
MayoStainGuide/StainGuide.py
2025-09-03 21:24:08 +02:00

104 lines
3.1 KiB
Python

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())