【问题标题】:Of what use of is the class attribute of a tkinter frame object?tkinter 框架对象的类属性有什么用?
【发布时间】:2013-07-02 18:20:14
【问题描述】:

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

【问题讨论】:

    标签: class tkinter frame


    【解决方案1】:

    绑定

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

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

    更具体地说,小部件的类会自动添加到该小部件的绑定标签列表中,并且是绑定标签列表赋予小部件其行为。对于 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,它的用处就小了一些,因为您可以子类化小部件并简单地更改构造函数中的属性。

    【讨论】:

      【解决方案2】:

      它被描述为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')
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多