certflow.views.bases.base_dialog module

对话框基类(重构计划阶段 1,对应蓝图 §7.2 任务 1.3 widgets 收敛)。

职责归位(REFACTOR §2.4):按钮栏与危险确认逻辑统一收敛进 widgets/,本基类仅作 组合基类,复用共享件而非自行实现:

  • 底部标准按钮栏(确认 / 取消 / 应用)由 widgets.DialogButtonBar 提供,按内容定宽、 右对齐,发出 accepted / rejected / applied

  • 危险操作二次确认由 widgets.ConfirmDialog.danger 提供(见 confirm_danger), 集中危险样式与文案,避免各对话框手写 QMessageBox.question

  • 顶部工具栏请使用 widgets.ActionToolbar``(``button_row.py),与对话框底部按钮栏 职责分离:ActionToolbar 面向视图工具条(左对齐、按内容定宽),DialogButtonBar 面向对话框底部(右对齐、带信号)。

  • 内容区布局 content_layout:子类往里填充控件 / 子布局。

  • Esc 关闭(QDialog 默认行为,显式保证)。

  • 尺寸策略:SetMinimumSize,对话框收缩到内容、不撑满整行(呼应布局修复第 2.2 节)。

非破坏性:仅提供标准骨架,现有复杂对话框(如 import_dialog)仍可保持手写布局。

class certflow.views.bases.base_dialog.BaseDialog(parent=None, title='', show_apply=False, confirm_text='确认', cancel_text='取消')[源代码]

基类:QDialog

标准对话框基类。

用法:

class MyDialog(BaseDialog):
    def init_ui(self) -> None:
        self.content_layout.addWidget(QLabel("内容"))

dlg = MyDialog(self, title="编辑", confirm_text="保存")
if dlg.exec():
    ...

按钮栏信号已接线:accepted -> accept()rejected -> reject()``applied -> self.applied``(可选「应用」按钮)。

参数:
  • parent (QWidget | None)

  • title (str)

  • show_apply (bool)

  • confirm_text (str)

  • cancel_text (str)

applied
confirm_danger(title, message, preview=None, ok_text='删除', ok_default=False)[源代码]

弹出来自 widgets.ConfirmDialog 的危险操作二次确认(确认逻辑收敛进 widgets)。

参数:
  • title (str) -- 对话框标题。

  • message (str) -- 提示正文。

  • preview (str | None) -- 可选详情(如待删除记录预览),折叠在「显示详情」里。

  • ok_text (str) -- 确认按钮文案(默认「删除」)。

  • ok_default (bool) -- 确认按钮是否默认聚焦(危险操作默认 False,聚焦取消)。

返回:

用户是否确认。

返回类型:

bool

init_ui()[源代码]

构造对话框内容。子类必须实现,往 self.content_layout 填充。

返回类型:

None

staticMetaObject = PySide6.QtCore.QMetaObject("BaseDialog" inherits "QDialog": Methods:   #41 type=Signal, signature=applied() )