找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4464|回复: 0
打印 上一主题 下一主题
收起左侧

GTK的color selection、file choose、font控件【原】

[复制链接]
跳转到指定楼层
楼主
ID:72519 发表于 2015-1-23 19:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        GtkColorButton为用户选择颜色提供了一种比较简单方法,这些颜色值是有6个16进制数或RGB直来组成。在Button控件内部长方形区域显示所选中的颜色作为Button控件的子控件,这样构成GtkColorButton。当你点击它时,他会弹出一个对话框供你选择颜色。
GdkColor color;
gdk_color_parse ("#003366", &color);
button = gtk_color_button_new_with_color (&color);
gtk_color_button_set_title (GTK_COLOR_BUTTON (button), "Select a Color");上面的代码创建了一个GtkColorButton。其中GdkColor的结构成员如下:
struct GdkColor
{
guint32 pixel;
guint16 red;
guint16 green;
guint16 blue;
};其中piexl会自动保存颜色的索引,不需要软件人员去改变它的值。red、green、blue的范围是0~65535。很多情况下我们都是通过“#003366”这样的格式去获取颜色的,在GTK中,要把"#003366"解析成GdkColor格式,需要通过函数gdk_color_parse来实现。至此,我们可以通过gtk_color_button_new_with_color来创建颜色选择按钮。
         GtkFileChooserButton为用户选择文件或文件夹提供了一种比较简单方法。当用户点击它时,一个GtkFileChooserDialog将被打开允许用户选择文件或文件夹。
chooser1 = gtk_file_chooser_button_new ("Chooser a Folder", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
chooser2 = gtk_file_chooser_button_new ("Chooser a Folder", GTK_FILE_CHOOSER_ACTION_OPEN);上面两个函数是创建两个GtkFileChooserButtonGtkFileChooserButton可以选择单个文件或单个文件夹,这主要跟函数gtk_file_chooser_button_new的第二个参数,第二个参数共有4个类型,这里只介绍两种:
GTK_FILE_CHOOSER_ACTION_OPEN:表示用户将选择单个文件,可以通过滤波器来过来显示的文件类型。
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:表示用户将选择单个文件夹。
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser1),g_get_home_dir());
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser2),g_get_home_dir());函数gtk_file_chooser_set_current_folder用来设置当前读入文件或文件夹目录,也就是你点击GtkFileChooserButton控件弹出的对话框中显示的目录。
filter1 = gtk_file_filter_new ();
filter2 = gtk_file_filter_new ();
gtk_file_filter_set_name (filter1, "Image Files");
gtk_file_filter_set_name (filter2, "All Files");
gtk_file_filter_add_pattern (filter1, "*.png");
gtk_file_filter_add_pattern (filter1, "*.jpg");
gtk_file_filter_add_pattern (filter1, "*.gif");
gtk_file_filter_add_pattern (filter2, "*");函数gtk_file_filter_new创建文件滤波器,gtk_file_filter_add_pattern用来设置滤波参数,比如上面提到的"*.png"等。至此,我们可以通过gtk_file_chooser_get_filename 函数来获取你选择文件或文件夹的名字。
         GtkFontButton是另外一种特殊的按钮控件,用来选择系统内的字体。
button = gtk_font_button_new_with_font ("Sans Bold 12");
gtk_font_button_set_title (GTK_FONT_BUTTON (button), "Choose a Font");通过函数gtk_font_button_new_with_font来创建GtkFontButton,带的参数是一个字符串,包含字体的三个属性,每个属性中间用空格隔开;比如"Sans Bold 12"表示字体名字叫Sans,Bold表示字体加粗,12表示字体大小。
font = gtk_font_button_get_font_name (button);
desc = pango_font_description_from_string (font);
gtk_widget_modify_font (label, desc);函数gtk_font_button_get_font_name获取选中的字体,返回的是一个字符串,格式跟"San Blod 12"一样,pango_font_description_from_string用来解析字体。最后就可以通过函数gtk_widget_modify_font去改变控件的字体咯。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表