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