class UI_Combin_Docx(QThread):
messbox_text = Signal(str, str)
clear_text = Signal()
def __init__(self):
super().__init__()
self.doc = conbin_Docx()
# 存储选择的单个文件路径
self.Single_filePath = list()
# 实例化
# 保证每次都是从相同的目录开始
self.sel_root_path = "c:\\"
# 创建主窗口
self.creat_window()
self.btn_select_file.clicked.connect(self.SelFile)
self.btn_start_combin.clicked.connect(self.Startcombine)
self.messagebox = QMessageBox(self.window)
self.messbox_text.connect(self.showMessage)
self.clear_text.connect(self.clear_Viewtext)
# 这里的参数个数需要信号中的定义参数个数一致
@Slot(str,str)
def showMessage(self,title,text):
self.FilaView.insertPlainText("Combine Complete\n")
self.messagebox.information(
self.window,
title,
text)
# 需在主线程中清理界面文件信息,补课在子线程中清理
@Slot()
def clear_Viewtext(self):
self.FilaView.clear()
# 保存文件的操作
def SaveFile(self,sel_filePath, SavefilePath):
for file in sel_filePath:
# self.FilaView.insertPlainText(file)
# self.FilaView.insertPlainText("\n")
self.doc.combine_docx(SavefilePath, file)
if file == sel_filePath[-1]:
self.messbox_text.emit('合并完成', '合并完成,文件保存在{0}'.format(SavefilePath))
print("文件合并完毕")
self.clear_text.emit()
time.sleep(3)
# 线程启动自动执行run
def run(self):
self.SaveFile(self.Single_filePath,self.TempPath)