Tkinter条目获取用户输入的文本

时间:2015-10-22 00:46:29

标签: python tkinter

我对Tkinter很新(我觉得很难学)。我有一个基于用户输入的python脚本。我想围绕它包装一个GUI,并最终把它放在网上。在任何情况下,对于用户输入,我想通过Entry小部件和一些按钮的组合从GUI获得这个。第一件事是我正在阅读,有些人提到使用课程,所以我有以下内容。我有几个问题

  1. 我想查看用户是否确实在点击GO按钮之前输入了值。我该怎么做?
  2. 我希望输入的值可以被主体中的其余程序访问。我该怎么做?
  3. 谢谢,

    from Tkinter import *
    
    class MainWindow():
    
        def get_fc(self):
            a = self.fc_gui.get()
            return a
    
        def __init__(self, master):
            self.master = master
            self.master.title('TEST')
    
            self.fc_gui = DoubleVar(self.master, value = 500.00)
    
            self.fclabel1 = Label(self.master, text = 'Please Enter a value', fg = 'black', bg = 'yellow')
            self.fclabel1.grid(row = 0, column = 0)
    
            self.fcedit1 = Entry(self.master, textvariable = self.fc_gui, bd = 5  )
            self.fcedit1.grid(row = 1, column = 0)
    
            fcbutton1 = Button(self.master, text='GO', command = self.get_fc)
            fcbutton1.grid(row = 1, column = 1)
    
    master = Tk()
    MainWindow(master)
    master.mainloop()
    

1 个答案:

答案 0 :(得分:0)

  1. returnButton没有意义。 Button无法对该值执行任何操作。而是将值保存为实例变量。
  2. 您没有mainloop()
  3. 你无法真正检查用户是否在之前输入了值他们点击了“Go” - 在程序开始时,当然他们还没有输入任何内容。如果您需要跟踪此字段的内容,可以通过多种方式进行操作,但不需要进行简单的验证。只需在按下按钮时检查该值。
  4. from Tkinter import *
    
    class MainWindow():
    
        def get_fc(self):
            a = self.fc_gui.get()
            if a: # this block will execute if a has content
                self.a = a # save it for future use
    
        def __init__(self, master):
            self.master = master
            self.master.title('TEST')
    
            self.fc_gui = DoubleVar(self.master, value = 500.00)
    
            self.fclabel1 = Label(self.master, text='Please Enter a value',
                                  fg = 'black', bg = 'yellow')
            self.fclabel1.grid(row = 0, column = 0)
    
            self.fcedit1 = Entry(self.master, textvariable = self.fc_gui, bd = 5  )
            self.fcedit1.grid(row = 1, column = 0)
    
            fcbutton1 = Button(self.master, text='GO', command = self.get_fc)
            fcbutton1.grid(row = 1, column = 1)
    
    master = Tk()
    MainWindow(master)
    master.mainloop() # don't forget mainloop()