2.2 KiB
2.2 KiB
btn_defPrintSet 默认打印设置 实现方案(复用 InkJetPrinter 的 PrintSetting)
1. 需求
MainInstruction 中按钮 btn_defPrintSet,点击后切换到打印设置页面编辑默认参数,通过 PrintSettingModel::setDefPrintSettingModel() 持久化。
2. 核心思路
复用 InkJetPrinter::m_PrintSetting 实例,通过 setDefaultSettingMode(true) 临时切换模式,关闭时恢复。
3. 数据流
btn_defPrintSet 点击
→ MainInstruction emit sendButtonClickedSignal(6)
→ InkJetPrinter::getMainInstructWidgetButtonClickedSlot case 6
→ 保存当前 model:m_savedPrintSettingModel = m_PrintSetting->model()
→ m_PrintSetting->setDefaultSettingMode(true) // 按钮文本变为"保存为默认"
→ m_PrintSetting->setModel(defPrintSettingModel()) // 从 XML 加载
→ m_isDefaultPrintSettingMode = true
→ m_StackedWidget->setCurrentWidget(m_PrintSetting) // 切换到打印设置页
用户编辑 → 控件直接修改 m_model
点击"保存为默认"
→ on_pushButtonApply_pressed
→ 检测 m_isDefaultSettingMode → updateModelFromUI() → setDefPrintSettingModel → 写入 XML
点击关闭 → PrintSetting emit sendButtonClickedSignal(1)
→ InkJetPrinter::getPrintSettingButtonClickedSlot
→ 检测 m_isDefaultPrintSettingMode
→ m_PrintSetting->setModel(m_savedPrintSettingModel) // 恢复
→ m_PrintSetting->setDefaultSettingMode(false)
→ m_isDefaultPrintSettingMode = false
→ m_StackedWidget->setCurrentWidget(m_TestPrintWidget) // 返回
4. 改动清单
| 文件 | 改动 |
|---|---|
Printsetting.h |
新增 setDefaultSettingMode(bool) 声明 + m_isDefaultSettingMode 成员 |
Printsetting.cpp |
新增 setDefaultSettingMode 实现 + on_pushButtonApply_pressed 加分支 |
MainInstruction.cpp |
btn_defPrintSet → emit sendButtonClickedSignal(6) |
InkJetPrinter.h |
新增 m_isDefaultPrintSettingMode、m_savedPrintSettingModel、enterDefaultPrintSettingMode()、exitDefaultPrintSettingMode() |
InkJetPrinter.cpp |
实现进入/退出默认模式逻辑,getMainInstructWidgetButtonClickedSlot 加 case 6,getPrintSettingButtonClickedSlot 加恢复逻辑 |