我正在构建一个使用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的正确方法是什么?
答案 0 :(得分:1)
显然小部件在某种程度上是错误的(不明白为什么这仍然会起作用)。