gpt4 book ai didi

python - 什么时候使用变量类? (BooleanVar, DoubleVar, IntVar, StringVar)

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:41 25 4
gpt4 key购买 nike

tkinter.widget.configure(text="our text") 不能用于所有小部件吗?有什么优势,或者主要使用目的:

var_cls = tkinter.StringVar()
tkinter.widget.configure(textvariable=var_cls)

var_cls 是否可以更容易地在方法/类等之间共享?


带有变量类的示例:

import tkinter as tk
root = tk.Tk()
var = tk.StringVar(value="This will be on the label.")
tk.Label(root, textvariable=var).pack()
root.mainloop()

没有变量类的例子:

import tkinter as tk
root = tk.Tk()
tk.Label(root, text="This will be on the label.").pack()
root.mainloop()

最佳答案

在 tkinter 应用程序中,StringVar(以及 IntVarBooleanVarDoubleVar)非常有用很少需要。底层的 tcl/tk 解释器为其所有变量提供特殊功能,因此存在这些包装器以利用这些功能。

这些变量的两大优点是:

  1. 您可以将一个变量与多个小部件相关联,以便两个或多个小部件始终显示完全相同的信息
  2. 您可以绑定(bind)要在值更改时调用的函数。

我的意见是,除非您特别需要这两个功能之一,否则不应使用它们。如果您只需要获取或设置小部件的值,则有一些方法可以在小部件本身上执行此操作(例如:entry_widget.insert(...)、label_widget.configure(text='...') 等) .

我觉得它们通过引入需要管理的额外对象来增加开销,除非您利用上述两个功能,否则不会提供任何额外的好处。

关于python - 什么时候使用变量类? (BooleanVar, DoubleVar, IntVar, StringVar),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com