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

Python Tkinter条目获取用户输入的文本,python,tkinter,Python,Tkinter,我对特金特很陌生(我觉得很难学)。我有一个基于用户输入的python脚本。我想围绕它包装一个GUI,并最终将其放到web上。在任何情况下,对于用户输入,我都希望通过输入窗口小部件和一些按钮的组合从GUI中获得这些信息。第一件事是我在阅读,一些人提到使用一个类,所以我有以下内容。我有几个问题 我想检查一下用户在点击GO按钮之前是否输入了一个值。我该怎么做 我希望输入的值能够被主体中程序的其余部分访问。我该怎么做 谢谢 from Tkinter import * class MainWindow(

我对特金特很陌生(我觉得很难学)。我有一个基于用户输入的python脚本。我想围绕它包装一个GUI,并最终将其放到web上。在任何情况下,对于用户输入,我都希望通过输入窗口小部件和一些按钮的组合从GUI中获得这些信息。第一件事是我在阅读,一些人提到使用一个类,所以我有以下内容。我有几个问题

  • 我想检查一下用户在点击GO按钮之前是否输入了一个值。我该怎么做
  • 我希望输入的值能够被主体中程序的其余部分访问。我该怎么做
  • 谢谢

    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()
    
  • 返回到
    按钮
    没有意义。
    按钮
    无法处理该值。而是将该值另存为实例变量
  • 您没有
    mainloop()
  • 你不能在用户点击“Go”之前检查他们是否输入了值——在程序开始时,当然他们还没有输入任何内容。如果您需要跟踪此字段的内容,有很多方法可以做到这一点,但这不是简单验证所必需的。当他们按下按钮时,只需检查数值

  • 当我不在类中时,如何访问get_fc中的a变量?这是我程序的主要功能。我问的原因是我的程序没有gui,我正在尝试添加gui。Thanks@Lefti-如果你的意思是
    a
    ,你就不需要了。这就是功能范围背后的想法。如果您的意思是
    self.a
    ,只需使用
    self.a
    。这是一个实例变量。
    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()