注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

海天鹰

在大海和天空中翱翔,用锐利的目光审视着这个世界

 
 
 

日志

 
 

【转载】GTK+2.0---颜色选择对话框  

2016-03-02 10:43:29|  分类: 电脑 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include <gtk/gtk.h>
typedef struct
{
    GtkWidget *win;
    GdkColor *color;
    GtkWidget *drawarea;
}ARG;
void set_bg_color(GtkWidget *widget,ARG *arg)
{
    GtkWidget *dialog;
    GtkColorSelection *colorsel;
    dialog=gtk_color_selection_dialog_new("ColorSelect");
    gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(arg->win));
    colorsel=GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(dialog)->colorsel);
    gtk_color_selection_set_has_opacity_control(colorsel,TRUE);
    gtk_color_selection_set_has_palette(colorsel,TRUE);
    gtk_color_selection_set_previous_color(colorsel,arg->color);
    gtk_color_selection_set_current_color(colorsel,arg->color);
    if(gtk_dialog_run(GTK_DIALOG(dialog))==GTK_RESPONSE_OK)
    {
        gtk_color_selection_get_current_color(colorsel,arg->color);
        gtk_widget_modify_bg(arg->drawarea,GTK_STATE_NORMAL,arg->color);
    }
    gtk_widget_destroy(dialog);
}
int main(int argc,char **argv)
{
    GtkWidget *win;
    GtkWidget *vbox;
    GdkColor color;
    GtkWidget *button;
    GtkWidget *frame;
    GtkWidget *drawarea;
    ARG arg;
    gtk_init(&argc,&argv);
    win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(win),"ColorSelect");
    gtk_window_set_position(GTK_WINDOW(win),GTK_WIN_POS_CENTER);
    gtk_container_set_border_width(GTK_CONTAINER(win),20);
    g_signal_connect(G_OBJECT(win),"destroy",G_CALLBACK(gtk_main_quit),NULL);
    vbox=gtk_vbox_new(FALSE,0);
    gtk_container_add(GTK_CONTAINER(win),vbox);
    frame=gtk_frame_new(NULL);
    gtk_box_pack_start(GTK_BOX(vbox),frame,FALSE,FALSE,5);
    drawarea=gtk_drawing_area_new();
    gtk_widget_set_size_request(drawarea,200,200);
    gtk_container_add(GTK_CONTAINER(frame),drawarea);
    color.red=0;
    color.blue=65535;
    color.green=0;
    gtk_widget_modify_bg(drawarea,GTK_STATE_NORMAL,&color);
    arg.win=win;
    arg.color=&color;
    arg.drawarea=drawarea;
    button=gtk_button_new_with_label("Set BG Color");
    gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,5);
    g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(set_bg_color),&arg);
    gtk_widget_show_all(win);
    gtk_main();
    return 0;
}
编译
gcc -o color_select color_select.c `pkg-config --cflags --libs gtk+-2.0`
如图
GTK+2.0---颜色选择对话框 - 枯龙吟 - 枯龙吟
  评论这张
 
阅读(49)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018