def _worker_path_searching(self, is_current=True): try: self.cur_index = 0 # 不能自动播放了,否则会不同步 self.auto_play = False self.cb_auto_show.setChecked(False) if is_current: # print(self.sub_dir) if self.cur_path: if self.sub_dir: self.cur_files = Utils.getFiles( self.cur_path, self.suffix) else: self.cur_files = Utils.files_in_dir( self.cur_path, self.suffix, True) else: # print(self.search_path) for each in self.search_path: if self.sub_dir: self.cur_files += Utils.getFiles(each, self.suffix) else: self.cur_files += Utils.files_in_dir( each, self.suffix, True) with open(self.save_file, 'w') as w_file: # 打开文件,如果文件不存在,则创建 Utils.cout_list(self.cur_files, True, fh=w_file) # 输出到文件 except IOError as err: # 异常处理 print("File error: " + str(err))
def slot_pb_clicked(self, controls): name = controls.objectName() # print(name) if name == 'pb_add_files': file_list, _ = QtWidgets.QFileDialog.getOpenFileNames( self, '多文件选取', '', self.ext_filter, None, QtWidgets.QFileDialog.DontUseNativeDialog) # print(file_list) data = self.createDate(file_list) self.tableWidget.update_data(data) self.tableWidget.update_table() elif name == 'pb_open_dir': path = QtWidgets.QFileDialog.getExistingDirectory( self, "选取源文件夹", '', QtWidgets.QFileDialog.ShowDirsOnly) # 起始路径 if path: self.src_path = path self.lineEdit_src_dir.setText(path) self.src_files = Utils.files_in_dir(path, ['.doc', '.docx'], True) data = self._createDate(self.src_files) self.tableWidget.update_data(data) self.tableWidget.update_table() elif name == 'pb_clear': self.tableWidget.update_data(None) self.tableWidget.update_table() elif name == 'pb_save_path': path = QtWidgets.QFileDialog.getSaveFileName( self, "选取保存文件夹", '.', self.ext_filter) # 起始路径 if path: # self.save_path, self.save_file = os.path.splitdrive(path[0]) # self.save_path, self.save_file = os.path.splitext(path[0]) self.save_path, self.save_file = os.path.split(path[0]) self.save_path = path[0] # print(path) self.lineEdit_save_path.setText(self.save_path) elif name == 'pb_merge': rows = self.tableWidget.selectedItems() self.merge_files.clear() # self.files_weight.clear() for each in rows: file_name = each.text() file_path = os.path.join(self.src_path, file_name) # 构造完整路径 if os.path.isfile(file_path): self.merge_files.append(file_path) # self.files_weight.append(Utils.get_FileSize(file_path)) # print(self.files_weight) # print(self.save_path) if self.save_path: # path = os.path.join(self.save_path, self.save_file) # 构造完整路径 if self.merge_files: Utils.mergewords(self.merge_files, self.save_path, self.progressBar) else: AnimWin('请指定保存路径') else: pass
def data_stores(self): # plans = ['8个最好用的哑铃训练动作', # "一副哑铃练全身"] # MyJson.write(plans, os.path.join(self.data_dir, 'plan.json')) files = Utils.files_in_dir(self.data_dir, ['.json'], True) file = files[0] self.plans.clear() self.plans.extend(MyJson.read(file))
def slot_toolbar_clicked(self, name): if name == 'doc转换': wg = self.canvas.currentWidget() # path = QtWidgets.QFileDialog.getExistingDirectory( # self, "选取源文件夹", r'F:\重要\法律与工程经济讲义', # QtWidgets.QFileDialog.ShowDirsOnly) # 起始路径 path = r'F:\重要\法律与工程经济讲义' print(path) # return if path: self.src_path = path self.src_files = Utils.files_in_dir(path, ['.doc', '.docx']) Utils.sort_nicely(self.src_files) print(self.src_files) if not self.src_files: return for each in self.src_files: item = QtWidgets.QListWidgetItem(QtGui.QIcon(), each, wg) # item.setToolTip(self.data[i]) item.setSizeHint(QtCore.QSize( 16777215, 50)) # 设置item的默认宽高(这里只有高度比较有用) item.setTextAlignment(QtCore.Qt.AlignCenter) # 文字居中 name, _ = os.path.splitext(each) doc = f'{path}\\{each}' pdf = f'{path}\\{name}.pdf' print(doc, pdf) self.butler.word2pdf(doc, pdf) # # # print(path) self.butler.merge_pdf(path, '合并.pdf') elif name == '缩图': file_list, _ = QtWidgets.QFileDialog.getOpenFileNames( self, '多文件选取', '', 'img Files(*.png *.jpg *.jpeg *.gif *.bmp *.tiff);;All Files(*.*)', None, QtWidgets.QFileDialog.DontUseNativeDialog) print(file_list) scale = 1.0 for each in file_list: file_in, ext = os.path.splitext(each) file_jpg = f'{file_in}.jpg' print(file_in, file_jpg, ext) ImageConvert.png_jpg(each, file_jpg, scale) elif name == '水印': # self.child_win.show() # ----- modeless dialog self.child_win.exec() # ------ modal dialog
def flushDir(self): dir_path = self.data_path['dir_src'] if not dir_path: AnimWin('没有源目录') return tmp = Utils.getSubStr(dir_path, 10) # print(tmp) self.label_src.setText(u'源文件目录:' + tmp) self.files_all.clear() self.listWidget_src.clear() self.checked = False self.files_all = Utils.files_in_dir(dir_path, ['.doc', '.docx']) if not self.files_all: return Utils.sort_nicely(self.files_all) for each in self.files_all: item = QtWidgets.QListWidgetItem(each) self.listWidget_src.addItem(item) self.statusbar.showMessage(f'总文件:{len(self.files_all)} 选中:0', 0)