是否可以使用一种方法创建多个小部件?

时间:2017-04-24 14:32:09

标签: python python-3.x class tkinter

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

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()

1 个答案:

答案 0 :(得分:1)

我假设你正在使用tkinter。

你不能使用" name"如您所建议的那样在标签制作者中命名变量,但如果您不希望稍后与标签进行交互,则您也不需要。你可以这样做:

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变量。