概述
当实现复杂的对话框(即,具有大约10个或更多窗口小部件的对话框,尤其是在多个框架中排列时),创建需要许多tkinter调用,当代码保持在单个方法中时,代码可能会变得越来越复杂(难以读取和维护)。一般来说,短函数/方法通常比长函数/方法更可取。在
我目前限制方法长度的方法是将属于对话框中某个组的所有小部件的创建封装到一个method(parent_frame, other_options)中,该程序返回如下顶层小部件:import tkinter as tk
class Dialog:
def __init__(self, master):
self.__master = master
self.create_gui(master)
def create_gui(self, frame, title = None):
if title: frame.title(title)
group_a = self.create_group_a(frame)
group_a.grid(row=0, column=0, sticky="nsew")
group_b = self.create_group_b(frame)
group_b.grid(row=1, column=0, sticky="nsew")
frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)
frame.rowconfigure(1, weight=1)
def create_group_a(self, frame):
inner_frame = tk.LabelFrame(frame, text="Label")
text = self.create_text_with_scrollbar(inner_frame)
text.pack(fill="both")
return inner_frame
def create_group_b(self, frame):
button = tk.Button(frame, text="Button")
return button
def create_text_with_scrollbar(self, frame):
text_frame = tk.Frame(frame)
text_frame.grid_rowconfigure(0, weight=1)
text_frame.grid_columnconfigure(0, weight=1)
text = tk.Text(text_frame)
text.grid(row=0, column=0, sticky="nsew")
scrollbar = tk.Scrollbar(text_frame, command=text.yview)
scrollbar.grid(row=0, column=1, sticky="nsew")
text['yscrollcommand'] = scrollbar.set
return text_frame
if __name__ == "__main__":
master = tk.Tk()
Dialog(master)
tk.mainloop()
在这种情况下,是否有关于代码结构的具体指导方针?有人对如何更好地构建这样的代码有什么建议吗?在
最后
以上就是正直悟空为你收集整理的python对话框代码_Python、tkinter、复杂对话框和代码结构的全部内容,希望文章能够帮你解决python对话框代码_Python、tkinter、复杂对话框和代码结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复