когда будет обновляться виджет Текст после вставки текста - PullRequest
2 голосов
/ 24 апреля 2019

Я создаю простой графический интерфейс, который содержит кнопку и текстовый виджет (TextArea) . Мое дело, когда я нажимаю кнопку, текстовый виджет будет вставлять текст.

На моем прикрепленном изображении, после того, как появился графический интерфейс, я нажал кнопку, и я нахожусь в точке останова в строке 9, я ожидаю, что текстовый виджет имеет 2 строки: text1, text2

Однако ничего не отображается, пока не завершится обратный вызов функции

The debug status

from tkinter import *

master = Tk()

def callback(text: Text):
    text.delete('1.0', END)
    text.insert(END, 'text1\r\n')
    text.insert(END, 'text2\r\n')
    text.insert(END, 'text3\r\n')
    text.insert(END, 'text4\r\n')
    text.insert(END, 'text5\r\n')
    text.insert(END, 'text6\r\n')
    text.insert(END, 'text7\r\n')

textwidget = Text(master)
textwidget .pack()
b = Button(master, text="OK", command=lambda :callback(textwidget))
b.pack()

mainloop()

У меня вопрос: как заставить принудительно обновлять графический интерфейс сразу после выполнения метода вставки textwidget?

Обновление

Спасибо за рекомендацию @Saad, я обновляю код (вставьте text.update () в строке 9) и вижу, как текст появляется в текстовом виджете

def callback(text: Text):
    text.delete('1.0', END)
    text.insert(END, 'text1\r\n')
    text.insert(END, 'text2\r\n')
    text.update()
    text.insert(END, 'text3\r\n')
    text.insert(END, 'text4\r\n')
    text.insert(END, 'text5\r\n')
    text.insert(END, 'text6\r\n')
    text.insert(END, 'text7\r\n')

1 Ответ

2 голосов
/ 25 апреля 2019

Хорошо, теперь я понимаю, в чем именно проблема. Как я вижу на рисунке, вы установили точку останова в строке 9 в своем коде. то, что это делает, это приостанавливает компиляцию в точке останова, чтобы мы могли тестировать разные вещи, такие как - error , но эта функция не подходит для GUI, по крайней мере, на том, что я видел. Так что просто удалите эту красную точку останова в вашем простое, которая должна решить проблему.

Тогда вам не нужно использовать text.update().

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...