3

app-indicatorを使用するアプリケーションを構築しています。メニューは動的に更新する必要があります。アイテムの追加はgtk_menu_shell_appendを使用してうまく機能しますが、削除するためにgtk_menu_shell_*関数が見つかりません。gtk_container_removeを見つけ、それをgtkmenuitemで呼び出すと、その親は次の警告を表示します。

GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkWidget'
Gtk-CRITICAL **: gtk_widget_get_parent: assertion `GTK_IS_WIDGET (widget)' failed
Gtk-CRITICAL **: gtk_container_remove: assertion `GTK_IS_CONTAINER (container)' failed

また、gtk_widget_destoryを呼び出してみたところ、次のようなエラーが発生しました。

GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkWidget'
Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed

どちらの方法でも、実際にはメニューからメニュー項目が削除されることに注意してください。

これらのエラー/警告を生成せずにGtkMenuからGtkMenuItemを削除する正しい方法は何ですか?

4

1 に答える 1

1

どうやらウィジェットがどういうわけか間違っていたようです(なぜこれがまだ機能するのか理解できません)。

于 2012-12-25T08:32:37.257 に答える