Tkinter:StringVar不起作用,是空的

时间:2015-11-23 09:29:46

标签: python tkinter

我的代码中的StringVar存在问题。我的问题是变量是空的,它不包括条目的值。 我有两个不同的方法,一个是有效的,另一个没有,但显然是相同的。

这项工作:

def veentanaPrincipal():
    top = Tkinter.Tk()
    var = Tkinter.StringVar()
    def buscarPorNombre():
        pa = Tkinter.Tk()
        L1 = Tkinter.Label(pa, text="Introduzca el nombre"+"\n"+ "completo del remitente:")
        E1 = Tkinter.Entry(pa, textvariable = var)  
        def buscar():
            buscarPorNombreYApellidos(var.get()) 

        B1 = Tkinter.Button(pa, text ="Buscar", command = buscar)
        L1.pack(side = Tkinter.LEFT)
        B1.pack(side = Tkinter.RIGHT)
        E1.pack( side = Tkinter.RIGHT)

    B = Tkinter.Button(top, text ="Buscar por Nombre y Apellidos", command = buscarPorNombre)    
    B.pack()    
    top.mainloop()

这不起作用:

{{1}}

请帮帮我。 感谢

1 个答案:

答案 0 :(得分:0)

var是局部变量,因此您无法在另一个函数中访问它。

您可以使用global(或学习“对象编程”)

import Tkinter as tk

def buscar():
    global var

    print var.get()

def buscarPorNombre():
    global var

    var = tk.StringVar()
    E1 = tk.Entry(top, textvariable=var)  
    E1.pack(side=tk.RIGHT)

    B1 = tk.Button(top, text="OK", command=buscar)
    B1.pack(side=tk.RIGHT)

top = tk.Tk()
B = tk.Button(top, text="RUN", command=buscarPorNombre)    
B.pack()    
top.mainloop()
相关问题