2013-12-18 2 views
2

По какой-то причине, когда я нажимаю кнопку py_varo, печатается, а не значение в текстовом поле. Любая идея почему?Почему печатается 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() 
+0

* для интересующего вас вопроса *, пожалуйста, соглашайтесь с ответами на вопросы, которые вы получаете по вопросам, так как это предотвращает выполнение stackoverflow, например, для [этого вопроса] (http://stackoverflow.com/questions/20585560/ my-tkinter-gui-is-invisible-for-unknown-причинам), у вас есть отличный ответ от @falsetru, но вы ни комментировали, ни принимали .... пожалуйста, избегайте спрашивать и запускать свою модель. .. также рассмотрите [экскурсия о SO] (http://stackoverflow.com/tour) –

ответ

1

Это происходит, так как вы не получаете значение в StringVar, который делается с помощью get() метода

Так Измени button() функцию следующим образом:

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

спасибо. – user3102599

+0

@ user3102599 пожалуйста, проверьте это http://meta.stackexchange.com/a/5235 –

1

Replace следующую строку:

print(message) 

с (Us е get метод объекта STRINGVAR):

print(message.get()) 

Иначе распечатать саму переменную, а не содержимое переменной.

+0

Большое спасибо. – user3102599

Смежные вопросы