如何在Tkinter大规模生产入口盒小部件?

时间:2014-03-11 15:35:06

标签: python-2.7 tkinter

我想通过调用函数或类将以下4行代码转换为1行。这样,我可以为我想要创建的每个输入框小部件调用该函数:

self.systest = StringVar()
self.systest.set("N/A")
self.e = Entry(self.frame1, textvariable=self.systest)
self.e.grid(row=6, column=1)

这是我想要创建的功能(实际上没有工作):

def entry_boxes(self, row, col, default, var, frame):
    setattr(self, var, StringVar)
    setattr(self, var, default)
    e = Entry(frame, textvariable=var)
    e.grid(row=row, column=col)

称呼它:

entry_boxes(self,6,1,'N/A','self.systest',self.frame1)

这将是一个类的一部分,所以我需要从其中的任何位置调用变量。

1 个答案:

答案 0 :(得分:0)

你在尝试这样的事吗?

from Tkinter import StringVar,Entry,Tk
class UIclass():
    def __init__(self,root):
        #define self.frame1
        self.myfunc()

    def myfunc(self):
        self.entry_boxes(6,1,'N/A','self.systest',self.frame1)
        self.entry_boxes(6,2,'N/A','self.systest',self.frame1)
        ...
        ...
        ...

    def entry_boxes(self, row, col, default, var, frame):
        setattr(self, var, StringVar)
        setattr(self, var, default)
        e = Entry(frame, textvariable=var)
        e.grid(row=row, column=col)

if __name__ == '__main__':
    root = Tk()
    UIclass(root)
    root.mainloop()

如果没有,请告诉我,以便我可以删除这个答案