Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向Tk小部件添加自定义属性_Python_Tkinter - Fatal编程技术网

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)