Python 向Tk小部件添加自定义属性
我的主要目标是在小部件中添加隐藏的标记或字符串之类的内容,以在小部件上保存简短的信息。 我想到了创建一个新的自定义按钮类(在本例中,我需要按钮),它继承了所有旧的选项 代码如下:Python 向Tk小部件添加自定义属性,python,tkinter,Python,Tkinter,我的主要目标是在小部件中添加隐藏的标记或字符串之类的内容,以在小部件上保存简短的信息。 我想到了创建一个新的自定义按钮类(在本例中,我需要按钮),它继承了所有旧的选项 代码如下: form tkinter import * class NButton(Button): def __init__(self, master, tag=None, *args, **kwargs): Button.__init__(self, master, *args, **kwargs)
form tkinter import *
class NButton(Button):
def __init__(self, master, tag=None, *args, **kwargs):
Button.__init__(self, master, *args, **kwargs)
self.master, self.tag = master, tag
创建新的NButton实例时没有问题:
aria1 = NButton(treewindow, bd=2, relief=GROOVE, text="Trasmissione\naerea 1", bg="#99c4ff", tag="aria 1")
aria1.place(x=20, y=20)
当我尝试获取标记的值时,问题出现了:
aria1["tag"]
它返回:
_tkinter.TclError:未知选项“-tag”
如何解决此问题?您需要访问自定义选项作为对象属性:
print(aria1.tag)
是否有其他选项可以添加用户定义的属性而不是子类化?@Wolf:是的<代码>b=传统按钮(…);b、 something=“something”
。我明白了,非常感谢。有时它太容易了,所以对于C++程序员来说太难了。虽然子类化可用于向Tk
小部件添加自定义属性,但无需显式地将master
属性分配给self
。它已经通过按钮完成了。uuu init_uuu(self、master、*args、**kwargs)
。