78 lines
2.3 KiB
Python
78 lines
2.3 KiB
Python
from PySide6.QtCore import Qt, QSize
|
|
from PySide6.QtGui import QFont
|
|
from PySide6.QtWidgets import (
|
|
QDialog,
|
|
QWidget,
|
|
QLabel,
|
|
QVBoxLayout,
|
|
QHBoxLayout,
|
|
QPushButton,
|
|
QButtonGroup,
|
|
QSpacerItem,
|
|
QSizePolicy,
|
|
)
|
|
|
|
|
|
class LanguageDialog(QDialog):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.setObjectName("LanguageDialog")
|
|
self.setWindowFlags(Qt.FramelessWindowHint | Qt.Dialog)
|
|
self.setWindowModality(Qt.ApplicationModal)
|
|
self.setMinimumSize(QSize(1024, 600))
|
|
|
|
root = QVBoxLayout(self)
|
|
root.setContentsMargins(24, 24, 24, 24)
|
|
root.setSpacing(16)
|
|
|
|
root.addItem(QSpacerItem(10, 10, QSizePolicy.Minimum, QSizePolicy.Expanding))
|
|
|
|
card = QWidget()
|
|
card.setObjectName("LanguageCard")
|
|
card_layout = QVBoxLayout(card)
|
|
card_layout.setContentsMargins(18, 18, 18, 18)
|
|
card_layout.setSpacing(14)
|
|
|
|
title = QLabel("Сначала выберите язык")
|
|
title.setObjectName("LanguageTitle")
|
|
title.setFont(QFont("", 20, 700))
|
|
title.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
|
|
|
|
options_row = QHBoxLayout()
|
|
options_row.setContentsMargins(0, 0, 0, 0)
|
|
options_row.setSpacing(12)
|
|
|
|
self._group = QButtonGroup(self)
|
|
self._group.setExclusive(True)
|
|
|
|
self._btn_ru = QPushButton("Русский")
|
|
self._btn_ru.setObjectName("LanguageOption")
|
|
self._btn_ru.setCheckable(True)
|
|
self._btn_ru.setChecked(True)
|
|
self._btn_ru.setMinimumHeight(48)
|
|
self._btn_ru.setFont(QFont("", 14, 600))
|
|
self._group.addButton(self._btn_ru)
|
|
|
|
options_row.addWidget(self._btn_ru, 1)
|
|
options_row.addStretch(1)
|
|
|
|
confirm = QPushButton("Продолжить")
|
|
confirm.setObjectName("LanguageConfirm")
|
|
confirm.setMinimumHeight(52)
|
|
confirm.setFont(QFont("", 15, 700))
|
|
confirm.clicked.connect(self.accept)
|
|
|
|
card_layout.addWidget(title)
|
|
card_layout.addLayout(options_row)
|
|
card_layout.addWidget(confirm)
|
|
|
|
root.addWidget(card)
|
|
root.addItem(QSpacerItem(10, 10, QSizePolicy.Minimum, QSizePolicy.Expanding))
|
|
|
|
def reject(self):
|
|
# Ignore reject to force a language choice.
|
|
return
|
|
|
|
def selected_language(self) -> str:
|
|
return "ru"
|