为什么打印py_varo而不是文本框中的值?

时间:2013-12-18 13:04:09

标签: python tkinter python-3.3

出于某种原因,当我按下按钮时,正在打印py_varo而不是文本框中的值。知道为什么吗?

import sys
from tkinter import*

mygui = Tk()
message = StringVar()
mygui.geometry('300x300+982+0')
mygui.title("hey everyone check out my gui")
mylabel1 = Label(mygui, text = 'hello world',fg = 'yellow', bg = 'blue')
mylabel1.grid(row = 0, column = 0)
def button():
    global message
    print (message)
textbox = Entry(mygui, textvariable =message)
textbox.grid(row = 0, column = 2)
mybutton = Button(mygui, text = 'Pointless Button', command = button)
mybutton.grid(row = 0,column = 1)

mygui.mainloop()

2 个答案:

答案 0 :(得分:1)

这是因为您未使用StringVar方法获取get()中的值

所以将您的button()功能更改为:

def button():
    global message
    print (message.get())

答案 1 :(得分:1)

替换以下行:

print(message)

with(使用StringVar对象的get方法):

print(message.get())

否则它会打印变量本身,而不是变量的内容。