我正在尝试使用gtk_container_remove,它说我忘了调用g_type_init(),有没有人知道如何阻止这种情况发生
答案 0 :(得分:1)
如果您使用的是早于2.36(已发布:2013年3月)的GLIB版本,则需要注意您已获得的建议并致电g_type_init()
功能。较新版本的GLib会自动为您调用该功能。
但是,由于您正在使用GTK +,因此您收到的警告表示另一个问题;这意味着您没有初始化GTK +本身,它将在内部为您初始化GLib类型系统。在使用任何其他gtk_init()
功能之前,您必须先致电gtk_init_check()
或gtk_*
来初始化GTK +。通常,您在gtk_init()
函数体中首先调用main
。
如果您使用的是GTK + 3.0以上的版本,则应考虑将代码移植到GtkApplication
类,这将在您实例化时为您初始化GTK +。
了解更多信息:
答案 1 :(得分:0)
在GUI应用程序中使用任何GTK +功能之前,您必须初始化系统。
要初始化系统,您必须致电gtk_init ()
这将初始化操作工具包所需的所有内容并解析一些标准命令行选项。
g_type_init()
调用函数gtk_init()
。
底线:在使用任何gtk + func之前调用gtk_init()
。
有关详细信息,请参阅gtk_init