使用GUI设置值

时间:2013-10-08 15:25:15

标签: python variables tkinter

我一直在查看文档,但对于如何使用Tkinter设置变量感到困惑。

我通常只通过脚本设置变量,例如:

nb=5
path='/Users/ashleighclayton/Files
navg=24
sdthresh=25
absstepthresh=100

但是,我希望能够使用GUI设置这些值。 目前我已经构建了这个GUI,但是我很难实现这个,尽管看起来很简单。 (另请注意,在大多数情况下,它们是整数而不是字符串)

class Application(Frame):
    def exc(self):
            execfile('currentmethod merlin.py',{'nb':nb,'path':path, 'navg':navg, 'sdthresh':sdthresh, 'absstepthresh':absstepthresh})

    def exe(self):
        execfile('new method merlin.py',{'nb':nb,'path':path, 'navg':navg, 'sdthresh':sdthresh, 'absstepthresh':absstepthresh} )    

    numblades=IntVar()


    def createWidgets(self):
        self.QUIT = Button(self)
        self.QUIT["text"] = "QUIT"
        self.QUIT["fg"]   = "red"
        self.QUIT["command"] =  self.quit

        self.QUIT.pack({"side": "left"})

        self.CRTM = Button(self)
        self.CRTM["text"] = "CRTM",
        self.CRTM["command"] = self.exc
        self.CRTM.pack({"side": "left"})

        self.ERTM = Button(self)
        self.ERTM["text"] = "ERTM",
        self.ERTM["command"] = self.exe
        self.ERTM.pack({"side": "left"})

        # this is what I attempted, but I'm unsue how to set the input as the variable. 
        self.nb = Entry(self)
        self.nb.pack(side = RIGHT)


    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()

root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()

抱歉,我是Tkinter的新手,所以任何帮助都会非常感激,甚至只是指向相关文档。

2 个答案:

答案 0 :(得分:0)

我通常使用textvariable配置选项和Tkinter变量,但您也可以使用insert。 http://effbot.org/tkinterbook/entry.htm

答案 1 :(得分:0)

首先为Entry

创建一个变量
self.entryVar=Tkinter.Stringvar()

然后将其与您的Entry小部件

链接
self.nb = Entry(self,textvariable=self.entryVar)

然后要获取Entry小部件的值,请使用

self.entryVar.get()