输入框上的.get()什么都不返回?

时间:2014-01-25 23:05:31

标签: python python-2.7 tkinter

当我尝试从我的代码中的输入框中获取值时,它返回一个空值?,我怎么能解决这个问题?我已经将输入框设置为字符串变量,但变量的值仍然没有?

import os
import sys
from Tkinter import *
import tkMessageBox

debug = Tk()    #prevenets error on 'StringVar()'
debug.withdraw()
#global varables
users_entry = StringVar()

def about():
tkMessageBox.showinfo("About", "...")
def convert():
test = users_entry.get()
print test
def root_window():
#creates main window
root_window = Tk()
root_window.title("convert to binary")
root_window.geometry("600x400")
root_window.resizable(width = FALSE, height =FALSE)
root_window.configure(background = "gray")
#aboutButton
#about_button = Button(root_window, text = "about", command = about, width = 50)
#about_button.grid(row = 0, column = 0, padx = 85, pady = 3)
#entry box for text
users_entry = StringVar()
text_entry = Entry(root_window, text = "test",textvariable = users_entry, width = 70)
text_entry.grid(row = 1, column = 0, pady = 3)
#convert button
convert_button = Button(root_window, text = "convert", command = convert)
convert_button.grid()
root_window.mainloop()
root_window()
debug.mainloop()

2 个答案:

答案 0 :(得分:0)

您需要设置StringVar对象的主文件:

users_entry = StringVar(root_window, value="ok")

答案 1 :(得分:0)

您在评论中将users_entry称为“全局变量”,但随后在users_entry内定义新的本地root_window

convert中,users_entry将引用脚本顶部定义的那个,它仍然是一个空字符串,不是 {{1>}本地定义的字符串。 {1}}并绑定到root_window框。

Entry放在每个方法的顶部,以实际使用您在脚本顶部初始化的版本。