certflow.widgets.filter_bar module¶
筛选条容器(通用可复用 UI 构件,归 widgets 包)。
管理 N 个 FilterRowWidget + 「添加条件」按钮 + 可选快查框,
对外发出 conditions_changed 信号,并汇总为统一条件契约
{field: {value, operator}}。
设计要点(对齐 docs/BLUEPRINT.md §五 wf5):
数据源无关:行所需的下拉加载 / 日期选择 / 样式回调通过构造参数透传给 每个
FilterRowWidget;容器本身不触碰具体视图或 Controller。统一条件契约:
get_conditions()与query_view.get_filters输出格式一致, 便于等价替换。快查框:可选
QuickSearch``(复用导入对话框的模糊匹配交互),选中项通过 ``quick_search_callback回调上抛,由宿主视图决定如何定位(如级联下拉 / 内存过滤)。
- class certflow.widgets.filter_bar.FilterBar(parent=None, *, columns=None, field_op_map=None, field_choices_map=None, operators=None, is_dark_theme_fn=None, load_combo_values_fn=None, open_date_picker_fn=None, date_button_style_fn=None, grid_cols=2, show_quick_search=False, quick_search_placeholder='', quick_search_callback=None, quick_search_typing_callback=None, show_preset_selector=False, presets=None, preset_changed_callback=None)[源代码]¶
基类:
QWidget筛选条件容器。
- 参数:
- conditions_changed¶
- find_row_by_field(field_name)[源代码]¶
查找指定字段的筛选行。
- 参数:
field_name (str)
- 返回类型:
FilterRowWidget | None
- staticMetaObject = PySide6.QtCore.QMetaObject("FilterBar" inherits "QWidget": Methods: #33 type=Signal, signature=conditions_changed() )¶