2012-02-22 16 views
1

私はマシンのグラフィカルユーザーインターフェイスで作業しています。メインループの外側(gtk-lock内のidle_add関数を使用)のメインスレッドでいつでも再描画可能なウィンドウでコンボボックスを使用します。これは、特定のボタン(ウィジェットではなく実際のボタン)がマシン上で押されたときに発生します。コンボボックスが開いているときにこのようなことが起こると、Gtk-Warningが出ます。アサーション 'WIDGET REALIZED FOR EVENT'が失敗し、プログラムがハングします。Python gtk:コンボボックスが開いているかどうかを確認する方法?

私は、コードを追加してみました:

combo.set_active(-1) 
    while gtk.events_pending(): 
      gtk.main_iteration() 

をしかし、この問題は解決しませんでした。

私はcombo.is_open()やcombo.close()のような関数を探していましたが、存在しないようです。コンボに関連する信号は「変更」、「移動アクティブ」、「ポップアップ」および「ポップダウン」ですが、最初はコンボでテキストが選択され、他がキーバインディング信号である場合にのみ送信されます。

コンボが開いている(選択されている)かどうかを確認する方法はありますか?

答えて

2

popup-shownプロパティを使用します。

ドキュメントには、notify::popup-shownに接続するように指示する場合もあります。

+0

ありがとうございます!私はあなたのドキュメントでコンボを閉じるための 'gtk_combo_box_popdown()'関数も見つけました。これは私の問題を解決する。 –

関連する問題