Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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 可以用一种方法创建多个小部件吗?_Python_Python 3.x_Class_Tkinter - Fatal编程技术网

Python 可以用一种方法创建多个小部件吗?

Python 可以用一种方法创建多个小部件吗?,python,python-3.x,class,tkinter,Python,Python 3.x,Class,Tkinter,我在一个窗口中创建多个标签,我想在类中使用一个方法来创建它们,并在调用函数时将名称、文本等传递给函数。在测试中,我没有找到使用变量的方法,而是将函数作为小部件的名称。是否可以这样做,或者我需要多种方法?如果无法为小部件名称传递名称,是否有其他方法可以使用一种方法创建多个小部件 class framemkr(object): def __init__(self, name): self.name = name def lblmkr(self, name, wor

我在一个窗口中创建多个标签,我想在类中使用一个方法来创建它们,并在调用函数时将名称、文本等传递给函数。在测试中,我没有找到使用变量的方法,而是将函数作为小部件的名称。是否可以这样做,或者我需要多种方法?如果无法为小部件名称传递名称,是否有其他方法可以使用一种方法创建多个小部件

class framemkr(object):

    def __init__(self, name):
        self.name = name

    def lblmkr(self, name, words, frame):
        self.name= Label(frame, text=words)
        self.name.grid()

我假设您正在使用tkinter

您不能像建议的那样使用名称来命名label maker中的变量,但如果您不想以后与标签交互,则也不需要这样做。你可以这样做:

class framemkr(object):
    def __init__(self, name):
        self.name = name

    def add_label(self, text, row, column, frame):
        """ Adds a label to the GUI when called.
        """
        Label(frame, text=text).grid(row=row, column=column)
否则,如果要与标签交互并保存变量,可以将其保存在字典中:

class framemkr(object):
    def __init__(self, name):
        self.name = name
        self.labels = {}

    def add_label(self, name, text, row, column, frame):
        """ Adds a label to the GUI when called.
        """
        label = Label(frame, text=text)
        label.grid(row=row, column=column)
        self.labels[name] = label

因此,您可以稍后从字典中访问label变量。

我需要稍后访问它们,因此我必须为小部件命名。我以前做过查字典的工作,但我正在寻找其他选择。如果那是唯一的办法,那么我可以走那条路。谢谢,是的,很好