2016-01-03 2 views
2

Использование Tkinter в Python Я пытаюсь изменить то, что отображается в текстовом поле при нажатии кнопки. Мой код до сих пор:Tkinter - редактирование текстового поля с помощью кнопки

screen = Tk() 
text = Text(screen, height = 2, width = 30) 
text.pack() 
text.insert(END, '-') 

def apress(): 
    text.insert(END, 'a') 

a = Tkinter.Button (screen, text = 'a', width = 5, command = apress).pack() 

mainloop() 

Если код не запускается ничего не происходит, и отладчик не перестанет работать, даже если нажать кнопку "прервать отладку. Есть ли способ исправить это?

+0

Поправьте меня, если я ошибаюсь, но не должен там быть 'STRINGVAR 'где-то для поля« Текст ». –

+0

Следите за своим отступом. –

+0

Я добавил 'из импорта Tkinter * и удалил' a = Tkinter.', и ваш код работает для меня. Linux Mint 17, Python 2.7.11. – furas

ответ

1

Вот рабочий код:

from Tkinter import * 

screen = Tk() 
text = Text(screen, height = 2, width = 30) 
text.pack() 
text.insert(END, '-') 

def apress(): 
    text.insert(END, 'a') 

btn = Button(screen, text = 'a', width = 5, command = apress) 
btn.pack() 

mainloop() 

Изменения я сделал:

  • Добавлен импорт from Tkinter import *
  • Используется Button вместо Tkinter.Button - так как мы использовали импорт подстановочные
  • Button.pack() отделенного на новой линии

Демо:

Первоначальный вид: Before clicking button

щелкнул несколько раз кнопку:

After clicking button

+0

Спасибо за помощь! Есть ли способ заменить текст на экране при нажатии кнопки? –

+1

Это немного сложно - используйте 'text.delete()', а затем 'text.insert()' – masnun

+0

Хорошо, спасибо! :) –

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