car_ui/ui/language_dialog.py
2026-01-09 03:27:48 +03:00

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"