当前位置: 技术问答>linux和unix
gtk编程中关于gtk_widget_show函数的问题
来源: 互联网 发布时间:2015-07-27
本文导语: 程序中,我在一个函数里面定义了一个主面板:GtkWidget *dialog,并在其中添加了很多的小部件。 现在的问题是:如果我就在这个函数里面调用gtk_widget_show(dialog)来显示它的话,没有问题,完全可以;但是,如果我在这...
程序中,我在一个函数里面定义了一个主面板:GtkWidget *dialog,并在其中添加了很多的小部件。
现在的问题是:如果我就在这个函数里面调用gtk_widget_show(dialog)来显示它的话,没有问题,完全可以;但是,如果我在这个函数的外面,如个主函数,或另外一个函数里面调用gtk_widget_show(dialog),则运行这个函数时报错,具体的报错代码如下:
(manager:1553): Gtk-CRITICAL **: file gtkwindow.c: line 2426 (gtk_window_realize_icon): assertion `info->icon_pixmap == NULL' failed
还请各位高手指点!谢了!
现在的问题是:如果我就在这个函数里面调用gtk_widget_show(dialog)来显示它的话,没有问题,完全可以;但是,如果我在这个函数的外面,如个主函数,或另外一个函数里面调用gtk_widget_show(dialog),则运行这个函数时报错,具体的报错代码如下:
(manager:1553): Gtk-CRITICAL **: file gtkwindow.c: line 2426 (gtk_window_realize_icon): assertion `info->icon_pixmap == NULL' failed
还请各位高手指点!谢了!
|
可能是gtk_widget_show(dialog)这个函数的使用问题吧,建议你把代码贴出来,你再检查一下吧
|
这当然不行了,C语言里面函数里面的变量是局部变量,在其他地方是不可见的。
你可以用一个全局变量,在程序开头,include语句下面加变量声明,象这样:
#include
GtkWidget *window; /* 全局变量生命 */
void callback(GtkWidget *widget, gpointer data)
{
window = ***
*** ***
}
int main()
{
window = ***
*** ***
}
这样就可以了。
你可以用一个全局变量,在程序开头,include语句下面加变量声明,象这样:
#include
GtkWidget *window; /* 全局变量生命 */
void callback(GtkWidget *widget, gpointer data)
{
window = ***
*** ***
}
int main()
{
window = ***
*** ***
}
这样就可以了。