- 论坛徽章:
- 0
|
这个我用了,但我需要再打开的时候就会出错,“什么没有这个控件”之类的提示。
我的 代码:(只列出相关代码)
typedef struct{
GladeXML *xml;
GtkWidget *textview;
GtkTextBuffer *buffer;
char *str;
GtkWidget *statusbar;
GtkWidget *dialog;
}app;
app *p;
void show(GtkWidget *widget,app *p)//回调函数
{
p->dialog=glade_xml_get_widget(p->xml,"colorselectiondialog1");//棰滆壊dialog
if(!p->dialog)
{
g_print("error in the fun of show()\n");
exit(1);
}
gtk_widget_show(p->dialog);
}
void delete_event( GtkWidget *widget,GtkWidget *dialog )//关闭
{
gtk_widget_destroy(dialog);
g_print("safe in the delete_event()\n");
if(!dialog)
{
g_print("error in the close\n");
exit(1);
}
}
主函数部分:
color=glade_xml_get_widget(p->xml,"chang_color");
button=glade_xml_get_widget(p->xml,"colorsel-ok_button1");
g_signal_connect(G_OBJECT (color), "activate",G_CALLBACK(show),p);//call color dialog
g_signal_connect (G_OBJECT (button), "clicked",G_CALLBACK (delete_event), p->dialog); |
|