pango_font_description_from_string设置字体

来源:互联网 发布:数据分析师 薪水 编辑:程序博客网 时间:2024/06/06 10:01
2011-02-16 17:05

pango_font_description_from_string设置字体

   使用PangoFontDescription更改指定控件的样式

            /*
             * pango_font_description_from_string();
             *  字体font的设置采用字符串格式, "[Family-List] [Style-Options] [size]"
             *       Family-List: 一串以逗号分割的字体名, 逗号结尾.
             *       Sytle-Ooptions: 一串空格分割的选项: Bold Italic 等
             *       size: 大小, 10进制数, 以point为单位.
             *     示例:
             *       font_name = " Sans, Bold Italic 12"
             *       font_name = " Sans,"
             *       font_name = "Bold 12"
             *       font_name = "12"
             *       font_name = "Bold Italic"
             */
            PangoFontDescription *font_desc = pango_font_description_from_string("Sans Blod 20");
            pango_font_description_set_size (font_desc, 50 * PANGO_SCALE); // 这里的“50”就是你的字体大小,可以随意设置。
            gtk_widget_modify_font(font_desc);
//            gtk_widget_set_style();
//            gtk_widget_modify_style();
            pango_font_description_free (font_desc);

实例:

    GtkWidget *entry = NULL;

    entry = gtk_entry_new ();

    PangoFontDescription *pfd;
    pfd = pango_font_description_from_string("Sans 12");
    gtk_widget_modify_font(GTK_WIDGET(entry),pfd);
    pango_font_description_free(pfd); // 释放

 

// 设置字体颜色:

               PangoAttrList *attrls = NULL;
               PangoAttribute *attr = NULL;

               attrls = pango_attr_list_new ();
               attr = pango_attr_underline_new(PANGO_UNDERLINE_SINGLE);
               attr->start_index = 0; // 设置下划线,0-3  总共3个字符有下划线
               attr->end_index = 3;
               pango_attr_list_change(attrls, attr);
               attr = pango_attr_foreground_new(65535,0,0); // 设置颜色,rgb
               pango_attr_list_change(attrls, attr);
               gtk_label_set_attributes(GTK_LABEL(label), attrls);
               pango_attr_list_unref(attrls); // 释放

 

 

 

 

 

if (default_font_ == NULL) {
GtkSettings* settings = gtk_settings_get_default();


gchar* font_name = NULL;
g_object_get(settings, "gtk-font-name", &font_name, NULL); // important


// Temporary CHECK for helping track down
// http://code.google.com/p/chromium/issues/detail?id=12530
CHECK(font_name) << " Unable to get gtk-font-name for default font.";

PangoFontDescription* desc = pango_font_description_from_string(font_name);
default_font_ = new Font(desc);
pango_font_description_free(desc);
g_free(font_name);

DCHECK(default_font_);
}

原创粉丝点击