免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3071 | 回复: 3
打印 上一主题 下一主题

怎样关闭颜色对话框? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-09 12:44 |只看该作者 |倒序浏览
我用glade3画了2个窗口,一个是颜色选择框,我想点确定就关闭颜色选择框,请问大伙怎样实现,我用gtk_quite_main()就两个都退出,郁闷,所以特此贴求解!!

论坛徽章:
0
2 [报告]
发表于 2008-11-10 08:32 |只看该作者
用gtk_widget_destroy()销毁你要销毁的窗口。

论坛徽章:
0
3 [报告]
发表于 2008-11-12 11:43 |只看该作者
这个我用了,但我需要再打开的时候就会出错,“什么没有这个控件”之类的提示。
我的 代码:(只列出相关代码)
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);

论坛徽章:
0
4 [报告]
发表于 2008-11-12 14:25 |只看该作者
gtk_widget_destroy会将窗口清除掉,你需要重新读取GladeXML,xml=glade_xml_new()...
其实你可以将他隐藏起来,再打开的时候就显示就可以了。

更好的方法是用
GtkWidget*          gtk_color_selection_dialog_new      (const gchar *title);
来生成GtkColorSelectionDialog
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP