什么时候根据tkinter编码标准使widget成为变量?



如果我要做一个按钮或标签,不会被调用或重新配置在代码的其他地方,我应该使它成为一个变量或只是创建该实例?只是实例化它使它更具可读性,使用更少的内存(不是说我必须考虑使用python),但我看到大多数人创建实例变量。哪一个"更好"?写它的方式(假设我以后不需要调用它)?

Button(root, text="Button").grid(row=0, column=0)

self.my_button = Button(root, text="Button")
self.my_button.grid(row=0, column=0)

我总是将小部件分配给变量。它们并不总是实例变量;有时它们是局部变量。如果我需要在定义小部件的函数之外引用它,我将使用实例或全局变量。

在我看来,当小部件被创建并放在单独的块中并逻辑地组合在一起时,tkinter代码更容易理解。当所有的布局代码都在一个块中,更容易可视化布局。

换句话说,不是这个:

root = Tk()
Canvas(root, ...).grid(...)
toolbar = Frame(root,...).grid(...)
Label(toolbar,...).pack(...)
Button(toolbar, ...).pack(...)

…我喜欢这个:

toolbar = Frame(root, ...)
canvas = Canvas(root, ...)
app_icon = Label(toolbar,...)
save_button = Button(toolbar, ...)
toolbar.grid(...)
canvas.grid(...)
app_icon.pack(...)
save_button.pack(...)

我认为工具栏和画布一起放在窗口中会更清楚,标签和图标是工具栏的一部分。

最新更新