怎样关闭颜色对话框?
我用glade3画了2个窗口,一个是颜色选择框,我想点确定就关闭颜色选择框,请问大伙怎样实现,我用gtk_quite_main()就两个都退出,郁闷,所以特此贴求解!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我用glade3画了2个窗口,一个是颜色选择框,我想点确定就关闭颜色选择框,请问大伙怎样实现,我用gtk_quite_main()就两个都退出,郁闷,所以特此贴求解!!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
gtk_widget_destroy会将窗口清除掉,你需要重新读取GladeXML,xml=glade_xml_new()...
其实你可以将他隐藏起来,再打开的时候就显示就可以了。
更好的方法是用
GtkWidget* gtk_color_selection_dialog_new (const gchar *title);
来生成GtkColorSelectionDialog
这个我用了,但我需要再打开的时候就会出错,“什么没有这个控件”之类的提示。
我的 代码:(只列出相关代码)
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 closen");
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);
用gtk_widget_destroy()销毁你要销毁的窗口。