Отображение изменений сразу в графическом интерфейсе GTK - PullRequest
0 голосов
/ 24 января 2019

Итак, у меня есть объект Gtk.Button, который в основном вызывает пользовательскую команду bash и отображает очень большой набор данных в новом окне. После нажатия для отображения нового окна может потребоваться от 3 до 10 секунд. То, что я хочу сделать, это изменить метку кнопки на что-то вроде «Загрузка ...» между моментом, когда кнопка нажата, и когда окно, наконец, всплывает. Однако, с моим текущим кодом это метка не меняйте до тех пор, пока не откроется окно. Это по сути то, что у меня есть:

    self.button.set_label("Loading...")
    self.show_all()
    win = NewWindow()
    win.connect("destroy", Gtk.main_quit)
    win.show_all()
    Gtk.main()

1 Ответ

0 голосов
/ 24 января 2019

Это то, что я сделал:

self.button.set_label("Loading...")
while Gtk.events_pending():
    Gtk.main_iteration()
win = NewWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

При нажатии кнопка отображает «Загрузка» и делает это до тех пор, пока не откроется новое окно.Цикл позволяет обновлять интерфейс во время длинных вычислений.

...