car_ui/ui/confirm_dialog.py
2026-01-09 03:59:59 +03:00

69 lines
2.1 KiB
Python

from PySide6.QtCore import Qt, QSize
from PySide6.QtGui import QFont
from PySide6.QtWidgets import (
QDialog,
QWidget,
QLabel,
QVBoxLayout,
QHBoxLayout,
QPushButton,
QSpacerItem,
QSizePolicy,
)
class ConfirmDialog(QDialog):
def __init__(self, title: str, message: str, confirm_text: str):
super().__init__()
self.setObjectName("ConfirmDialog")
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("ConfirmCard")
card_layout = QVBoxLayout(card)
card_layout.setContentsMargins(18, 18, 18, 18)
card_layout.setSpacing(12)
title_lbl = QLabel(title)
title_lbl.setObjectName("ConfirmTitle")
title_lbl.setFont(QFont("", 20, 700))
msg_lbl = QLabel(message)
msg_lbl.setObjectName("ConfirmMessage")
msg_lbl.setFont(QFont("", 14, 500))
msg_lbl.setWordWrap(True)
actions = QHBoxLayout()
actions.setContentsMargins(0, 0, 0, 0)
actions.setSpacing(12)
cancel_btn = QPushButton("Отмена")
cancel_btn.setObjectName("ConfirmCancel")
cancel_btn.setMinimumHeight(50)
cancel_btn.setFont(QFont("", 14, 700))
cancel_btn.clicked.connect(self.reject)
ok_btn = QPushButton(confirm_text)
ok_btn.setObjectName("ConfirmOk")
ok_btn.setMinimumHeight(50)
ok_btn.setFont(QFont("", 14, 700))
ok_btn.clicked.connect(self.accept)
actions.addWidget(cancel_btn, 1)
actions.addWidget(ok_btn, 1)
card_layout.addWidget(title_lbl)
card_layout.addWidget(msg_lbl)
card_layout.addLayout(actions)
root.addWidget(card)
root.addItem(QSpacerItem(10, 10, QSizePolicy.Minimum, QSizePolicy.Expanding))