通过框架中的Entry小部件迭代

时间:2015-08-21 06:08:33

标签: tkinter

我在一个框架上有几个Entry小部件。每个小部件都分配了一个textvariable。当所有条目都完成后,我想要发生一些事情(比如显示一个计算按钮)。 如何仅遍历Entry小部件以查看它们的值是否为空?

bytes

必须有一种方法来遍历内容框架(自我)并且只选择Entry小部件。我找不到解释如何做的来源。

2 个答案:

答案 0 :(得分:0)

尝试使用。这将返回窗口的子窗口的所有窗口小部件的列表。

list

然后遍历type并使用Entry检查它是否是{{1}}小部件。

答案 1 :(得分:0)

您可以将框架传递给一个函数,该函数将获取其子项并在子项是条目的情况下进行迭代:

def get_frame_inputs(frame):
    inputs = [frame.children[x].get() for x in frame.children if 'entry' in x]
    print(inputs)

class MyFrame:
    def __init__(self, master, title, row, col, stk):
        self.lf = LabelFrame(master, text=title)
        self.lf.grid(row=row, column=col, ipadx=5, ipady=5, padx=5, pady=5, sticky=stk)

    def add_entry(self, title, width, row, col, stk):
        Label(self.lf, text=title).grid(padx=5, pady=2, row=row, column=col, sticky=stk)
        self.en = Entry(self.lf, width=width)
        self.en.grid(padx=5, pady=2, row=row, column=col+1)


    def add_button(self, text, row, col, stk):
        Button(self.lf, text=text, command=lambda a=self.lf: get_frame_inputs(a)
        ).grid(row=row, column=col, sticky=stk, padx=5, pady=2)