104 lines
3.1 KiB
Python
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()) |