certflow.widgets.dialog_button_bar 源代码

"""对话框底部按钮栏(确认 / 取消 / 应用)。

替代各对话框手写 ``btn_layout`` + ``addStretch()`` 的重复。默认右对齐、定宽,
发出 ``accepted`` / ``rejected`` / ``applied`` 信号,供 ``BaseDialog`` 或任意
``QDialog`` 直接接线。
"""

from __future__ import annotations

from PySide6.QtCore import Signal
from PySide6.QtWidgets import QHBoxLayout, QPushButton, QWidget


[文档] class DialogButtonBar(QWidget): """确认 / 取消 / 应用 按钮栏。""" accepted = Signal() rejected = Signal() applied = Signal() def __init__( self, parent: QWidget | None = None, show_apply: bool = False, confirm_text: str = "确认", cancel_text: str = "取消", ) -> None: super().__init__(parent) layout = QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.addStretch() if show_apply: self.apply_btn = QPushButton("应用") self.apply_btn.setObjectName("applyButton") self.apply_btn.clicked.connect(self.applied.emit) layout.addWidget(self.apply_btn) self.cancel_btn = QPushButton(cancel_text) self.cancel_btn.clicked.connect(self.rejected.emit) self.ok_btn = QPushButton(confirm_text) self.ok_btn.setObjectName("primaryButton") self.ok_btn.setDefault(True) self.ok_btn.clicked.connect(self.accepted.emit) layout.addWidget(self.cancel_btn) layout.addWidget(self.ok_btn)
[文档] def set_confirm_enabled(self, enabled: bool) -> None: self.ok_btn.setEnabled(enabled)