对此处提到的此属性的功能/预期用途感到好奇 ('class=')
2 回答
绑定
您可以将绑定与小部件类相关联。因此,您可以拥有 N 个条目小部件并为它们分配相同的类,然后为它们提供所有相同的绑定,而不必在每个小部件上复制绑定。
如果要删除所有默认绑定,它也很有用,因为默认绑定属于默认类。如果您更改类,它们将不再具有默认行为。
更具体地说,小部件的类会自动添加到该小部件的绑定标签列表中,并且是绑定标签列表赋予小部件其行为。对于绑定标签的简要概述,您可以查看我对“关于 tkinter 中的绑定标签的基本查询”问题的回答
小部件属性
在 Tkinter 中,您可以使用option_add
命令定义小部件的默认属性(还有option_get
和等命令option_clear
)。此命令使用从 X11(unix/linux 窗口系统)世界借来的“选项数据库”。您可以将选项应用于类。因此,例如,您可以定义自己的框架类,并为其赋予独特的边框宽度、浮雕和颜色组合。当您创建新框架时,它们将继承这些属性。
当 tk 主要用于 Tcl 并且主要用于 unix 系统时,这非常有用,因为 tcl 没有真正的面向对象的子类化小部件的方式。使用 Tkinter,它的用处会有所降低,因为您可以子类化小部件并简单地更改构造函数中的属性。
它在这里描述:
指定窗口类。该类用于查询选项数据库以获取窗口的其他选项、确定窗口的默认绑定标签以及选择窗口小部件的默认布局和样式。这是一个只读选项:它只能在创建窗口时指定,并且不能用 configure widget 命令更改。
或者在本教程(第 1.2 节)中有更详细的说明。
请注意,在 python 中,asclass
是关键字,不能这样写:
frame = tk.Frame(root, class='Spam')
你需要使用:
frame = tk.Frame(root, cnf={'class': 'Spam'}) # or
frame = tk.Frame(root, **{'class': 'Spam'})