3

我正在构建一个使用应用程序指示器的应用程序。菜单应动态更新。使用 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 回答