当我尝试从我的代码中的输入框中获取值时,它返回一个空值?,我怎么能解决这个问题?我已经将输入框设置为字符串变量,但变量的值仍然没有?
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()
答案 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
放在每个方法的顶部,以实际使用您在脚本顶部初始化的版本。