tkinter 作为 python 标准库,兼具环境友好、简单易用等特性。然而一直以来,其难以构建复杂动态 GUI 的问题一直被诟病。在此,参考开源案例,尝试开发类 WEB 界面开发。
1 界面展示
2 内容刷新
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| def flush_gui(self): gui_width = self.root.winfo_width() gui_height = self.root.winfo_height() oper_order = self.oper_order name = self.name button_click = self.button_click if self.root.state() == "zoomed": max_gui = 1 else: max_gui = 0 self.root.destroy() win = Window( name=name, oper_order=oper_order, button_click=button_click, gui_width=gui_width, gui_height=gui_height, max_gui= max_gui ) win.root.mainloop()
|
3 核心代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class Window: def __init__(self, name="Homepage", oper_order=0, button_click=2, gui_width=1500, gui_height=1200, max_gui = 0): self.root = tk.Tk() self.gui_width = gui_width self.gui_height = gui_height self.max_gui = max_gui self.name = name if max_gui == 1: self.root.state("zoomed") self.root.geometry("%dx%d" % (gui_width, gui_height)) center_window(self.root) self.root.title("Integrated Photonics Prediction System -- "+name) self.root.iconbitmap(r"images\gui_img\logo.ico") self.root.grab_set() self.oper_order = oper_order self.button_click = button_click self.body()
|
4 总结
通过这一次 tkinter 的开发尝试,发现 tkinter 具备开发复杂 GUI 界面的能力,但是需要通过精心的构造。
⚓ Carl Zhao
🏢 逍遥科技有限公司
💭 曾经也是追光少年,然而少年归来已不再是少年,但依然在追光的路上。
📧 邮箱:1005513510@qq.com