Почему мое обновление GtkTreeView срабатывает только после завершения события gtkitem? - PullRequest
1 голос
/ 20 сентября 2011

У меня есть gtktree со столбцами и значениями. У меня также есть popupmenu с одним gtkmenuitem: «Обновить».

Событие обновления выполняет две вещи:

  • заселить мой gtktree
  • готовит запрос.

Запрос не является немедленным, он занимает около 5 секунд. Почему я вижу обновление дерева только через 5 секунд запроса? Я хочу немедленное обновление gtktree, я не понимаю, задержка обновления.

1 Ответ

2 голосов
/ 21 сентября 2011

Если вы выполняете длительные вычисления, то программа этим занимается и не успевает обновить графический интерфейс.Чтобы решить эту проблему, убедитесь, что вы выполняете следующий код в «основном цикле» вашего запроса (если он есть):

while(gtk_events_pending())
    gtk_main_iteration();

Если в вашем запросе нет цикла,например, если он полностью выполняется во внешней библиотеке, вам нужно будет сделать то, что предлагает Уилл, и запустить его в отдельном потоке.

...