1

列と値を持つ gtktree があります。1 つの gtkmenuitem: 'Refresh' を含む popupmenu もあります。

更新イベントは次の 2 つのことを行います。

  • gtktree を再作成する
  • クエリを実行します。

クエリは即時ではなく、約 5 秒かかります。クエリの 5 秒後にのみツリーの更新を確認できるのはなぜですか? gtktree をすぐに更新したいのですが、更新の遅れがわかりません。

4

1 に答える 1

2

長い計算を行っている場合、プログラムはそれで忙しく、GUIを更新する時間がありません。この問題を解決するには、クエリの「メインループ」で次のコードを実行するようにしてください(そのようなものがある場合)。

while(gtk_events_pending())
    gtk_main_iteration();

クエリにループがない場合、たとえば、クエリが完全に外部ライブラリで実行されている場合は、Willが提案するように実行し、別のスレッドで実行する必要があります。

于 2011-09-21T18:23:31.093 に答える