2014-11-12 3 views
1

У меня есть простой графический интерфейс TKinter с текстовым полем ввода и кнопкой. Я хочу ввести текст, нажать кнопку, и моя программа напечатает текст. Графический интерфейс работает отлично, за исключением случаев, когда я нажимаю на поле ввода текста и типа, я не вижу курсор или текст, пока не изменю размер окна или не нажму кнопку. Когда я нажимаю кнопку, текст появляется в поле ввода и возвращается. При вводе текста графический интерфейс не обновляется. Я запускаю Python 3.4 на OS X 10.10. Любые идеи приветствуются.Python TKinter Gui не обновляется

Вот код:

#!/usr/bin/env python 
from tkinter import * 

def getstring(): 
    filter_string= sfilter.get() 
    print('User Entered:', filter_string) 
    root.destroy() 
    return 

root = Tk() 
root.geometry('400x400+500+300') 
root.title("Extract") 

sfilter= StringVar() 

label1= Label(root, text= "Design Corner Filter:").grid(row=1, column=1) 
dfilter_box= Entry(root, textvariable=sfilter).grid(row=1,column=2) 
button1= Button(root, text= 'Plot', command= getstring).grid(row=2, column=2) 

root.mainloop() 
+0

Кажется, все в порядке: python 3.4.0, Ubuntu 14.04 x86_64 – Marcin

+0

Спасибо, что проверил мой код Marcin. Я думаю, что это проблема Mac OS X. Я могу добавить, что я установил Python 3.4.1 с помощью Anaconda. Когда я проверяю версию, я получаю Python 3.4.1 :: Anaconda 2.1.0 (x86_64). Версия tkinter - tk-8.5.15-0. – jkueng

ответ

0

Не работает: Windows 7, python3.4.1

Если вам не нужна строка VARS вы можете вызвать метод GET на виджете

dfilter_box.get() 
+0

Есть проблема с установкой Anaconda, я считаю. Когда я устанавливал только Python3.4.1 с помощью Homebrew и запускал скрипт, GUI работает нормально. Я считаю, что проблема связана с версией tk, которая используется в установке Anaconda. Я нашел это, похоже, та же проблема: https://github.com/ContinuumIO/anaconda-issues/issues/146. Спасибо за помощь. – jkueng

+0

Я использую только официальный питон ... – timeyyy