使用什么是tkinter框架对象的class属性?

时间:2013-07-02 18:20:14

标签: class tkinter frame

对此属性的功能/预期用途感到好奇 如上所述 here('class =')

2 个答案:

答案 0 :(得分:4)

<强>绑定

您可以将绑定与窗口小部件类相关联。因此,您可以拥有N个条目小部件并为它们分配相同的类,然后为它们提供所有相同的绑定,而无需在每个小部件上复制绑定。

如果您想删除所有默认绑定,它也很有用,因为默认绑定属于默认类。如果您更改了类,它们将不再具有默认行为。

更具体地说,窗口小部件的类自动添加到该窗口小部件的bindtags列表中,它是为窗口小部件提供行为的绑定标记列表。有关bindtags的简要概述,您可以看到my answer to the question "Basic query regarding bindtags in tkinter"

小组件属性

在Tkinter中,您可以使用option_add命令定义窗口小部件的默认属性(还有option_getoption_clear等命令。此命令使用从X11世界(unix / linux窗口系统)借用的“选项数据库”。您可以将选项应用于类。因此,例如,您可以定义自己的框架类,并为其提供边框宽度,浮雕和颜色的独特组合。创建新框架时,它们将继承这些属性。

当tk主要用于Tcl,主要用于unix系统时,这非常有用,因为tcl没有真正的面向对象的子类化小部件的方式。使用Tkinter它有点不太有用,因为你可以子类化小部件并只是改变构造函数中的属性。

答案 1 :(得分:3)

它描述了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'})