From d9f898715e5b39b613abd386b9e9e270ec4955a3 Mon Sep 17 00:00:00 2001 From: gitea Date: Wed, 1 Jan 2025 13:20:39 +0800 Subject: [PATCH] init: UI design basically completed --- .gitignore | 5 + assets/media/icon.ico | Bin 0 -> 165662 bytes assets/version/file_version_info.txt | 43 ++++++ assets/version/vers | 1 + code/common/aio.py | 215 +++++++++++++++++++++++++++ readme.md | 6 + 6 files changed, 270 insertions(+) create mode 100644 .gitignore create mode 100644 assets/media/icon.ico create mode 100644 assets/version/file_version_info.txt create mode 100644 assets/version/vers create mode 100644 code/common/aio.py create mode 100644 readme.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..efc4af6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +test.py +.idea/ +.venv/ +assets/logdata/ +package/ \ No newline at end of file diff --git a/assets/media/icon.ico b/assets/media/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4c3b21a9a6232171d15cc583e9176124cc45edf0 GIT binary patch literal 165662 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", select_path) + self.om_main_dp.set("INIT") + self.om_vel_dp.set("1") + self.om_trq_dp.set("2") + self.om_trqh_dp.set("2") + self.om_estop_dp.set("3") + self.om_sensor_dp.set("3") + # ======================================================================== + # self.tabview_top.tab("自动测试").grid_rowconfigure([0, 1, 2], weight=1) + self.tabview_top.tab("自动测试").grid_columnconfigure(4, weight=1) + self.om_main_at.grid(row=0, column=0, padx=10, pady=10, sticky="w") + self.om_sub_at.grid(row=1, column=0, padx=10, pady=(0, 10), sticky="w") + self.label_ip_at.grid(row=0, column=1, padx=(0, 10), sticky="e") + self.entry_ip_at.grid(row=0, column=2) + self.btn_conn.grid(row=0, column=3, padx=10) + self.progressbar_at.grid(row=0, column=4, sticky="e") + self.label_path_at.grid(row=1, column=1, padx=(0, 10), sticky="e") + self.entry_path_at.grid(row=1, column=2, columnspan=3, sticky="we") + self.segbutton_at.grid(row=2, column=0, columnspan=5, sticky="we") + + self.progressbar_at.start() + self.entry_path_at.bind("", select_path) + # ======================================================================== + self.tabview_bottom.tab("输出").grid_rowconfigure(0, weight=1) + self.tabview_bottom.tab("输出").grid_columnconfigure(0, weight=1) + self.text_output.grid(row=0, column=0, padx=0, pady=1, sticky="news") + # ======================================================================== + self.tabview_bottom.tab("日志").grid_rowconfigure(1, weight=1) + self.tabview_bottom.tab("日志").grid_columnconfigure(2, weight=1) + self.segbutton_logs.grid(row=0, column=0, padx=10, pady=(0, 10), sticky="w") + self.btn_find.grid(row=0, column=1, padx=(0, 10), pady=(0, 10), sticky="w") + self.entry_keyword.grid(row=0, column=2, padx=0, pady=(0, 10), sticky="we") + self.treeview_logs.grid(row=1, column=0, columnspan=3, padx=0, pady=1, sticky="news") + + self.segbutton_logs.set("实时") + # ======================================================================== + self.frame_status.rowconfigure(0, weight=1) + self.frame_status.columnconfigure([0, 1], weight=1) + self.label_vers.grid(row=0, column=0, sticky="news") + self.label_tips.grid(row=0, column=1, sticky="news") + # ======================================================================== + + def show(self): + self.root.mainloop() + + +if __name__ == "__main__": + aio = App() + aio.show() diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..967528e --- /dev/null +++ b/readme.md @@ -0,0 +1,6 @@ +#### 其他 +customtkinter的tabview组件不支持修改字体大小,可以参考 [Changing Font of a Tabview](https://github.com/TomSchimansky/CustomTkinter/issues/2296) 进行手动修改源码实现: + a. 运行 `pip show customtkinter`,获取到库的路径 + b. 修改.../windows/widgets/ctk_tabview.py + c. 增加 from .font.ctk_font import CTkFont + d. 在大概 78 行的位置,增加 font=CTkFont(family="Consolas", size=18, weight='bold') \ No newline at end of file