diff --git a/.gitignore b/.gitignore index 838b054..66c8375 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -./test.py +test.py .idea/ aio/.idea/ aio/__pycache__/ diff --git a/aio/aio.py b/aio/aio.py index 8ec46fc..3160a48 100644 --- a/aio/aio.py +++ b/aio/aio.py @@ -12,7 +12,7 @@ customtkinter.set_appearance_mode("System") # Modes: "System" (standard), "Dark customtkinter.set_default_color_theme("blue") # Themes: "blue" (standard), "green", "dark-blue" customtkinter.set_widget_scaling(1.1) # widget dimensions and text size customtkinter.set_window_scaling(1.1) # window geometry dimensions -socket.setdefaulttimeout(1) +socket.setdefaulttimeout(10) # global vars btns = { 'start': {'btn': '', 'row': 1, 'text': '开始运行'}, @@ -21,23 +21,23 @@ btns = { 'end': {'btn': '', 'row': 4, 'text': '结束运行'}, } widgits = { - 'path': {'label': '', 'entry': '', 'row': 0, 'col': 2, 'text': '数据文件夹路径'}, - 'av': {'label': '', 'entry': '', 'row': 1, 'col': 2, 'text': '角速度'}, - 'rc': {'label': '', 'entry': '', 'row': 1, 'col': 4, 'text': 'optional'}, - 'rpm': {'label': '', 'entry': '', 'row': 1, 'col': 6, 'text': '额定转速'}, - 'rr': {'label': '', 'entry': '', 'row': 1, 'col': 8, 'text': '减速比'}, - 'dur': {'label': '', 'entry': '', 'row': 1, 'col': 10, 'text': '周期时间'}, - 'axis': {'label': '', 'optionmenu': '', 'row': 2, 'col': 2, 'text': ''}, - 'vel': {'label': '', 'optionmenu': '', 'row': 2, 'col': 4, 'text': ''}, - 'trq': {'label': '', 'optionmenu': '', 'row': 2, 'col': 6, 'text': ''}, - 'trqh': {'label': '', 'optionmenu': '', 'row': 2, 'col': 8, 'text': ''}, - 'sto': {'label': '', 'optionmenu': '', 'row': 2, 'col': 10, 'text': ''}, - 'rc1': {'label': '', 'entry': '', 'row': 3, 'col': 2, 'text': '额定电流'}, - 'rc2': {'label': '', 'entry': '', 'row': 3, 'col': 4, 'text': '额定电流'}, - 'rc3': {'label': '', 'entry': '', 'row': 3, 'col': 6, 'text': '额定电流'}, - 'rc4': {'label': '', 'entry': '', 'row': 3, 'col': 8, 'text': '额定电流'}, - 'rc5': {'label': '', 'entry': '', 'row': 3, 'col': 10, 'text': '额定电流'}, - 'rc6': {'label': '', 'entry': '', 'row': 3, 'col': 12, 'text': '额定电流'}, + 'path': {'label': '', 'entry': '', 'row': 1, 'col': 2, 'text': '数据文件夹路径'}, + 'av': {'label': '', 'entry': '', 'row': 2, 'col': 2, 'text': '角速度'}, + 'rc': {'label': '', 'entry': '', 'row': 2, 'col': 4, 'text': 'optional'}, + 'rpm': {'label': '', 'entry': '', 'row': 2, 'col': 6, 'text': '额定转速'}, + 'rr': {'label': '', 'entry': '', 'row': 2, 'col': 8, 'text': '减速比'}, + 'dur': {'label': '', 'entry': '', 'row': 2, 'col': 10, 'text': '周期时间'}, + 'axis': {'label': '', 'optionmenu': '', 'row': 3, 'col': 2, 'text': ''}, + 'vel': {'label': '', 'optionmenu': '', 'row': 3, 'col': 4, 'text': ''}, + 'trq': {'label': '', 'optionmenu': '', 'row': 3, 'col': 6, 'text': ''}, + 'trqh': {'label': '', 'optionmenu': '', 'row': 3, 'col': 8, 'text': ''}, + 'sto': {'label': '', 'optionmenu': '', 'row': 3, 'col': 10, 'text': ''}, + 'rc1': {'label': '', 'entry': '', 'row': 4, 'col': 2, 'text': '额定电流'}, + 'rc2': {'label': '', 'entry': '', 'row': 4, 'col': 4, 'text': '额定电流'}, + 'rc3': {'label': '', 'entry': '', 'row': 4, 'col': 6, 'text': '额定电流'}, + 'rc4': {'label': '', 'entry': '', 'row': 4, 'col': 8, 'text': '额定电流'}, + 'rc5': {'label': '', 'entry': '', 'row': 4, 'col': 10, 'text': '额定电流'}, + 'rc6': {'label': '', 'entry': '', 'row': 4, 'col': 12, 'text': '额定电流'}, } @@ -53,7 +53,7 @@ class App(customtkinter.CTk): self.geometry("1180x550+30+30") self.protocol("WM_DELETE_WINDOW", self.func_end_callback) self.config(bg='#E9E9E9') - self.grid_rowconfigure(4, weight=1) + self.grid_rowconfigure(5, weight=1) self.grid_columnconfigure((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13), weight=1) self.minsize(1180, 550) # ===================================================================== @@ -72,51 +72,46 @@ class App(customtkinter.CTk): btns['log']['btn'].configure(command=lambda: self.thread_it(self.func_log_callback)) btns['end']['btn'].configure(command=lambda: self.thread_it(self.func_end_callback)) # create version info - self.label_version = customtkinter.CTkLabel(self.frame_func, justify='left', text="Vers: 0.1.4\nDate: 06/06/2024", font=self.my_font, text_color="#4F4F4F") + self.label_version = customtkinter.CTkLabel(self.frame_func, justify='left', text="Vers: 0.1.5\nDate: 06/12/2024", font=self.my_font, text_color="#4F4F4F") self.frame_func.rowconfigure(6, weight=1) self.label_version.grid(row=6, column=0, padx=20, pady=20, sticky='s') # ===================================================================== - # create frame - self.frame_param = customtkinter.CTkFrame(self, corner_radius=5, fg_color='#E9E9E9', border_width=2, border_color='#CDCDCD') - self.frame_param.grid(row=0, column=1, rowspan=3, columnspan=13, sticky='new', ipadx=20, ipady=10, padx=10, pady=(5, 10)) + # create tabviews + self.tabview = customtkinter.CTkTabview(self, width=10000, height=100, anchor='w', fg_color='#E9E9E9', border_width=2, border_color='#CDCDCD') + self.tabview.grid(row=0, column=1, padx=10, pady=5, sticky="nsew") + self.tabview.add("Data Process") + self.tabview.add("Automatic Test") # create main menu - self.menu_main = customtkinter.CTkOptionMenu(self.frame_param, values=["INIT", "brake", "current", "iso"], font=self.my_font, text_color='yellow', button_color='red', fg_color='green', command=self.func_main_callback) - self.menu_main.grid(row=0, column=1, sticky='we', padx=(20, 10), pady=(10, 5)) + self.menu_main = customtkinter.CTkOptionMenu(self.tabview.tab('Data Process'), values=["INIT", "brake", "current", "iso"], font=self.my_font, text_color='yellow', button_color='red', fg_color='green', command=self.func_main_callback) + self.menu_main.grid(row=1, column=1, sticky='we', padx=5, pady=5) self.menu_main.set("Start Here!") # create sub menu - self.menu_sub = customtkinter.CTkOptionMenu(self.frame_param) - # ===================================================================== - # create path related - self.label_path = customtkinter.CTkLabel(self.frame_param, text="PATH", font=self.my_font) - self.label_path.grid(row=0, column=2, sticky='e', pady=(10, 5)) - self.entry_path = customtkinter.CTkEntry(self.frame_param, width=670, placeholder_text="数据文件夹路径", font=self.my_font) - self.entry_path.grid(row=0, column=3, columnspan=11, padx=(5, 10), pady=(10, 5), sticky='we') - self.entry_path.configure(state='disabled') + self.menu_sub = customtkinter.CTkOptionMenu(self.tabview.tab('Data Process')) # ===================================================================== # create widgits for widgit in widgits: if widgit == 'path': - widgits[widgit]['label'] = customtkinter.CTkLabel(self.frame_param, text=f'{widgit.upper()}', font=self.my_font) - widgits[widgit]['label'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col'], sticky='e', pady=(10, 5)) - widgits[widgit]['entry'] = customtkinter.CTkEntry(self.frame_param, width=670, placeholder_text=widgits[widgit]['text'], font=self.my_font) - widgits[widgit]['entry'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col']+1, columnspan=11, padx=(5, 10), pady=(10, 5), sticky='we') + widgits[widgit]['label'] = customtkinter.CTkLabel(self.tabview.tab('Data Process'), text=f'{widgit.upper()}', font=self.my_font) + widgits[widgit]['label'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col'], sticky='e', pady=5) + widgits[widgit]['entry'] = customtkinter.CTkEntry(self.tabview.tab('Data Process'), width=670, placeholder_text=widgits[widgit]['text'], font=self.my_font) + widgits[widgit]['entry'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col']+1, columnspan=11, padx=(5, 10), pady=5, sticky='we') widgits[widgit]['entry'].configure(state='disabled') elif widgit in ['av', 'rc', 'rpm', 'rr', 'dur', 'rc1', 'rc2', 'rc3', 'rc4', 'rc5', 'rc6']: - widgits[widgit]['label'] = customtkinter.CTkLabel(self.frame_param, text=f"{widgit.upper()}", font=self.my_font) - widgits[widgit]['label'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col'], sticky='e', pady=(5, 5)) - widgits[widgit]['entry'] = customtkinter.CTkEntry(self.frame_param, width=self.w_param, placeholder_text=f"{widgits[widgit]['text']}", font=self.my_font) - widgits[widgit]['entry'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col']+1, padx=(5, 10), pady=(5, 5), sticky='w') + widgits[widgit]['label'] = customtkinter.CTkLabel(self.tabview.tab('Data Process'), text=f"{widgit.upper()}", font=self.my_font) + widgits[widgit]['label'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col'], sticky='e', pady=5) + widgits[widgit]['entry'] = customtkinter.CTkEntry(self.tabview.tab('Data Process'), width=self.w_param, placeholder_text=f"{widgits[widgit]['text']}", font=self.my_font) + widgits[widgit]['entry'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col']+1, padx=(5, 10), pady=5, sticky='w') widgits[widgit]['entry'].configure(state='disabled') elif widgit in ['axis', 'vel', 'trq', 'trqh', 'sto']: - widgits[widgit]['label'] = customtkinter.CTkLabel(self.frame_param, text=f"{widgit.upper()}", font=self.my_font) - widgits[widgit]['label'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col'], sticky='e', pady=(5, 5)) - widgits[widgit]['optionmenu'] = customtkinter.CTkOptionMenu(self.frame_param, button_color='#708090', fg_color='#778899', values=["1", "2", "3", "4", "5", "6", "7"], width=self.w_param, font=self.my_font) - widgits[widgit]['optionmenu'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col']+1, padx=(5, 10), pady=(5, 5), sticky='w') + widgits[widgit]['label'] = customtkinter.CTkLabel(self.tabview.tab('Data Process'), text=f"{widgit.upper()}", font=self.my_font) + widgits[widgit]['label'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col'], sticky='e', pady=5) + widgits[widgit]['optionmenu'] = customtkinter.CTkOptionMenu(self.tabview.tab('Data Process'), button_color='#708090', fg_color='#778899', values=["1", "2", "3", "4", "5", "6", "7"], width=self.w_param, font=self.my_font) + widgits[widgit]['optionmenu'].grid(row=widgits[widgit]['row'], column=widgits[widgit]['col']+1, padx=(5, 10), pady=5, sticky='w') widgits[widgit]['optionmenu'].configure(state='disabled') # ===================================================================== # create textbox self.textbox = customtkinter.CTkTextbox(self, wrap='none', font=customtkinter.CTkFont(family="consolas", size=14), text_color="blue", fg_color='#E9E9E9', border_width=2, border_color='#CDCDCD', border_spacing=5) - self.textbox.grid(row=4, column=1, rowspan=3, columnspan=13, ipadx=10, ipady=10, padx=10, pady=(5, 10), sticky='nsew') + self.textbox.grid(row=5, column=1, rowspan=2, columnspan=13, ipadx=10, ipady=10, padx=10, pady=(5, 10), sticky='nsew') self.textbox.configure(state='disabled') # ===================================================================== # version check @@ -161,8 +156,8 @@ class App(customtkinter.CTk): widgits[widgit]['label'].configure(text_color="red") widgits[widgit]['optionmenu'].configure(state='normal') elif func_name == 'current': - self.menu_sub = customtkinter.CTkOptionMenu(self.frame_param, values=["max", "avg", "cycle"], font=self.my_font, button_color='red', fg_color='green', command=self.func_sub_callback) - self.menu_sub.grid(row=1, column=1, sticky='we', padx=(20, 10), pady=(5, 5)) + self.menu_sub = customtkinter.CTkOptionMenu(self.tabview.tab('Data Process'), values=["max", "avg", "cycle"], font=self.my_font, button_color='red', fg_color='green', command=self.func_sub_callback) + self.menu_sub.grid(row=2, column=1, sticky='we', padx=5, pady=5) self.menu_sub.set("--select--") self.menu_sub.configure(text_color='yellow') diff --git a/aio/layout.xlsx b/aio/layout.xlsx index ac11973..476231a 100644 Binary files a/aio/layout.xlsx and b/aio/layout.xlsx differ