优化导出

This commit is contained in:
2025-11-25 21:12:34 +08:00
parent d9a02a8670
commit 09c8ef7be8
5 changed files with 439 additions and 15 deletions

View File

@@ -0,0 +1,82 @@
"""
批量导出选项对话框
"""
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QButtonGroup, QRadioButton
from PyQt5.QtCore import Qt
from qfluentwidgets import BodyLabel, PushButton, PrimaryPushButton, SubtitleLabel
class BatchExportDialog(QDialog):
"""批量导出选项对话框"""
EXPORT_NORMAL = 0 # 普通文件夹导出
EXPORT_MROBOT = 1 # MRobot 格式导出
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("导出选项")
self.setGeometry(200, 200, 400, 250)
self.export_type = self.EXPORT_NORMAL
self.init_ui()
def init_ui(self):
"""初始化UI"""
layout = QVBoxLayout(self)
layout.setContentsMargins(20, 20, 20, 20)
layout.setSpacing(20)
# 标题
title_label = SubtitleLabel("选择导出方式")
layout.addWidget(title_label)
# 选项组
self.button_group = QButtonGroup()
# 普通导出选项
normal_radio = QRadioButton("普通导出")
normal_radio.setChecked(True)
normal_radio.setToolTip("将每个交易的图片导出到单独的文件夹文件夹名日期_金额")
self.button_group.addButton(normal_radio, self.EXPORT_NORMAL)
layout.addWidget(normal_radio)
normal_desc = BodyLabel("每个交易的图片保存在独立文件夹中,便于查看和管理")
layout.addWidget(normal_desc)
layout.addSpacing(15)
# MRobot 格式导出选项
mrobot_radio = QRadioButton("MRobot 专用格式")
mrobot_radio.setToolTip("导出为 .mrobot 文件(专用格式,用于数据转交)")
self.button_group.addButton(mrobot_radio, self.EXPORT_MROBOT)
layout.addWidget(mrobot_radio)
mrobot_desc = BodyLabel("导出为 .mrobot 文件ZIP 格式),包含完整的交易数据和图片,用于转交给他人")
layout.addWidget(mrobot_desc)
layout.addStretch()
# 按钮
btn_layout = QHBoxLayout()
btn_layout.addStretch()
cancel_btn = PushButton("取消")
cancel_btn.clicked.connect(self.reject)
btn_layout.addWidget(cancel_btn)
ok_btn = PrimaryPushButton("确定")
ok_btn.clicked.connect(self.on_ok)
btn_layout.addWidget(ok_btn)
layout.addLayout(btn_layout)
def on_ok(self):
"""确定按钮点击"""
checked_button = self.button_group.checkedButton()
if checked_button:
self.export_type = self.button_group.id(checked_button)
self.accept()
def get_export_type(self):
"""获取选择的导出方式"""
return self.export_type