将 Tkinter 条目转换为变量

Transforming a Tkinter entry to variable

我无法获取入口值并使其成为我其余代码的可用变量,这部分只能创建一个变量 z,但它最终为空,这是我第四次尝试不同的方法没有好的结果。

entry.get() return没什么,我需要它return一个字符串。

from Tkinter import *

class Application(Frame):
    def __init__(self, master=None):
        Frame.__init__(self,master)
        self.grid()
        self.initialize()        

    def initialize(self):

        self.btn1 = Button(self, text = 'Ok', command=retrieve_input)
        self.btn1.grid()


def retrieve_input():
    print 'Input value => %s' %entry.get()     

root = Tk()
root.title('Teste')
root.geometry('200x100')
entry = Entry(root)
entry.grid(column=0,row=0)


entry.focus()                                    
entry.bind('<Return>', (lambda event: retrieve_input()))  
z=entry.get()

app = Application(root)
root.mainloop()

您需要致电:

z = entry.get()

只要你希望z成为entry中所写的内容。如将 retrieve_input 替换为:

def retrieve_input():
    global z
    z = entry.get()
    print 'Input value => %s' %z

例如。

如果你想添加一个变量,其名称与 entry 中所写的相同,你可以像下面的代码一样填充 variables 字典:

try:                        # In order to be able to import tkinter for
    import tkinter as tk    # either in python 2 or in python 3
except ImportError:
    import Tkinter as tk


def add_variable():
    global variables, entry
    variables[entry.get()] = None
    print(variables)


if __name__ == '__main__':
    root = tk.Tk()
    variables = dict()
    entry = tk.Entry(root)
    button = tk.Button(root, text="Add variable...", command=add_variable)
    entry.pack()
    button.pack()
    root.mainloop()