def auto_select(self): """读取配置文件设置 ui 状态 """ jf = setting_fftool.read_setting() keys = ("pt_file", "pw_file", "frame_file", "watermark_file", "number_file", "number_file_2", "number_file_3") keys2 = ("pt_select", "pw_select", "frame_select", "watermark_select", "number_select", "number_select_2", "number_select_3") fc_number = self.fc_number objs = (self.fc_pt, self.fc_pw, self.fc_frame, self.fc_watermark, fc_number, fc_number, fc_number) for i in range(len(objs)): key = keys[i] text = jf[key] if key in jf else '' if text: text = utils.pathlib_path(text) key = keys2[i] select_str = jf[key] if key in jf else '0' key = keys[i] if key == 'number_file': fc_number.set_select_and_text(1, select_str, text) elif key == 'number_file_2': fc_number.set_select_and_text(2, select_str, text) elif key == 'number_file_3': fc_number.set_select_and_text(3, select_str, text) else: objs[i].set_select_and_text(select_str, text) key = "number_15_select" select_str = jf[key] if key in jf else '0' self.fc_number.set_select_15(select_str) self.fc_out.set_text(setting_fftool.output_dir)
def auto_select(self): # 读取上次的备案号地址 jf = setting_fftool.read_setting() key = "number_file" text = jf[key] if key in jf else '' if text: text = utils.pathlib_path(text) self.fc_number.set_select_and_text(0, text) self.fc_out.set_text(setting_fftool.output_dir)
def open_folder_call(self): """打开文件夹对话框 """ init_dir = self.txt['text'] folder = filedialog.askdirectory(title='选择目录', initialdir=init_dir) if folder: folder = utils.pathlib_path(folder) self.txt['text'] = folder setting_fftool.output_dir = folder if self.action_btn_call is not None: self.action_btn_call()
def import_call(self, e): if setting_fftool.has_query: utils.showinfo("有任务正在执行,请稍后") return tup = tuple([]) ft = self.file_types ft_tup = self.file_types_tup if e.widget == self.import_btn: tup = filedialog.askopenfilenames( filetypes=ft, title='导入文件', initialdir=setting_fftool.last_folder) elif e.widget == self.import_list_btn: if os.path.exists(setting_fftool.list_file): arr = utils.read_txt(setting_fftool.list_file) new_arr = [] for f in arr: if os.path.exists(f): new_arr.append(f) if not len(new_arr): utils.showinfo('txt中的地址都不正确' + setting_fftool.list_file) return tup = tuple(new_arr) elif e.widget == self.import_dir_btn: folder = filedialog.askdirectory( title='选择目录', initialdir=setting_fftool.last_folder) if folder: folder = utils.pathlib_path(folder) setting_fftool.last_folder = folder arr = [] new_arr = [] # 获得目录下所有文件 utils.list_dir(folder, arr) # 过滤出指定格式的文件 for f in arr: suffix = str(Path(f).suffix) for f_type in ft_tup: if suffix == f_type: new_arr.append(f) break tup = tuple(new_arr) if len(tup): tup = utils.pathlib_path_tup(tup, True) self.tree.set_list(list(tup)) # self.start.set_state(True) # self.clear_query() setting_fftool.last_folder = utils.pathlib_parent(tup[0])
def open_file_call(self): """打开文件对话框 """ f_type = self.filetypes init_dir = self.txt['text'] init_dir = str(Path(init_dir).parent) if len(f_type): f = filedialog.askopenfilename(filetypes=f_type, title='选择文件', initialdir=init_dir) if f: self.txt['text'] = utils.pathlib_path(f) if self.action_btn_call is not None: self.action_btn_call()
def leave_right(self, event): """移出右侧粘贴框 """ if self.hasQuery: return ss = self.paste_r.get(1.0, tk.END) arr = utils.split_str(ss, False) if len(arr) and arr[0] == self.msg_right: # print("默认") return # 如果是文件路径,则取出文件名和扩展名 / 文件夹名 narr = [] for i in range(len(arr)): arr[i] = utils.pathlib_path(arr[i]) item = arr[i] item = item.strip("\t").strip(" ") item = item.strip("\t").strip(" ") item = item.strip('"').strip("'") p = Path(item) if p.name: narr.append(p.name) if not len(narr): self.paste_r.delete(1.0, tk.END) self.paste_r.insert(tk.INSERT, self.msg_right) return # self.varR.set(tuple(narr)) # self.varC.set(tuple([])) self.svR.set(narr) self.svC.set([]) self.sortRS['text'] = self.sortDesc[0] self.RightIsReverse = False # vlstr = self.varL.get() # vrstr = self.varR.get() # varIsN = util.stringVarisN # if varIsN(vlstr) or varIsN(vrstr): validL = self.svL.is_null() validR = self.svR.is_null() if not validL or not validR: utils.set_state(self.start_btn, True) self.paste_r.delete(1.0, tk.END) self.paste_r.insert(tk.INSERT, self.msg_right)
def paste_leave_left(self, event): """移出左侧粘贴框 """ if self.hasQuery: return ss = self.paste_l.get(1.0, tk.END) arr = utils.split_str(ss, False) if len(arr) and arr[0] == self.msgLeft: # print("默认") return # 检查文件/文件夹是否存在 narr = [] no_exists_arr = [] for i in range(len(arr)): arr[i] = utils.pathlib_path(arr[i]) item = arr[i] if len(item) < 3: continue if os.path.exists(item): narr.append(item) else: no_exists_arr.append(item) if not len(narr): self.paste_l.delete(1.0, tk.END) self.paste_l.insert(tk.INSERT, self.msgLeft, "right") return # 去重 tarr = [] for item in narr: if not tarr.count(item): tarr.append(item) narr = tarr # self.varL.set(tuple(narr)) # self.varC.set(tuple([])) self.svL.set(narr) self.svC.set([]) self.sortLS['text'] = self.sortDesc[0] self.LeftIsReverse = False self.list_l.xview_moveto(1.0) # vlstr = self.varL.get() # vrstr = self.varR.get() # validL = False if util.stringVarisN(vlstr) else True # validR = False if util.stringVarisN(vrstr) else True validL = False if self.svL.is_null() else True validR = False if self.svR.is_null() else True if validL and validR: utils.set_state(self.start_btn, True) self.paste_l.delete(1.0, tk.END) self.paste_l.insert(tk.INSERT, self.msgLeft, "right") num1 = len(no_exists_arr) if num1: file_name_str = "\n".join(str(item) for item in no_exists_arr) utils.showinfo('{0}个文件不存在,将不参与重命名:{1}\n'.format( num1, file_name_str))