抱歉,没有注意到你要求的Python格式。以下是调整后的示例代码,符合Python格式要求:
import os
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QLabel, QTextEdit, QPushButton, QFileDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("规则编辑器")
# 创建主窗口布局
layout = QVBoxLayout()
label = QLabel("输入规则:")
self.text_edit = QTextEdit()
layout.addWidget(label)
layout.addWidget(self.text_edit)
# 创建保存按钮
save_button = QPushButton("保存")
save_button.clicked.connect(self.save_rules)
layout.addWidget(save_button)
# 创建主窗口部件
central_widget = QWidget()
central_widget.setLayout(layout)
self.setCentralWidget(central_widget)
def save_rules(self):
rules = self.text_edit.toPlainText().split('\n')
rule_dict = {}
for rule in rules:
if not rule.strip():
continue
key, value = rule.split(':', 1) # 使用冒号分隔规则分类和规则内容
rule_dict.setdefault(key, []).append(value.strip())
print(rule_dict)
self.generate_document(rule_dict) # 调用生成文档的方法
def generate_document(self, rule_dict):
doc_folder = QFileDialog.getExistingDirectory(None, "选择保存路径") # 弹出文件夹选择对话框
if not doc_folder: # 如果用户没有选择文件夹,则返回
return
doc_path = os.path.join(doc_folder, "123.docx") # Word文档路径
try:
# 导入所需的库
from win32com.client import Dispatch
# 根据操作系统内安装的Office或者Wps来创建文档
if os.path.exists("C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE"):
word = Dispatch("Word.Application")
else:
word = Dispatch("kwps.Application")
# 创建一个Word文档
doc = word.Documents.Add()
for k, v in rule_dict.items():
# 写入规则分类
doc.Content.InsertAfter(f"{k}规则:\n")
# 逐条写入规则内容
for rule in v:
doc.Content.InsertAfter(f"{rule}\n")
# 用户输入完毕后,保存文档
doc.SaveAs(doc_path)
doc.Close()
word.Quit() # 关闭Word应用
print("文档生成成功!")
except Exception as e:
print(f"文档生成失败:{e}")
if __name__ == "__main__":
app = QApplication()
window = MainWindow()
window.show()
app.exec()
请注意,代码格式化对于Python编程非常重要。希望这次的代码格式符合你的需求。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |