我看了一本比较旧的书叫《gtk/gnome 程序设计》,里面讲了一个例子,怎样来使用字体选择对话框。由于书的比较旧,与最新的GTK+不对应,所以这个例子根本就不能执行。
原因是,在书中提到了GtkSyle这个结构,里面有一个项
struct GtkStyle
{
.....
GdkFont *font
....
}
但是在最新版的GTK+中,GtkStyle的结构是这样的
struct GtkStyle
{
.....
PangoFontDescription *font_desc;
.....
}
开始我不知道PangoFontDescription是什么意思,就去GTK的用户手册上去查找,看看有没有一个接口,可以实现从GdkFont到PangoFontDescription的转换,结果没有找到。后来就去网上搜索,无意中看到了一个函数叫
PangoFontDescription *pango_font_description_from_string(const gchar *)
其实这就不用那个转换了。
首先,从字体选择对话框中,返回描述字体的串(记得这个串必须要释放掉),然后直接送到上面的函数中就可以了,以前gtk老版本使用的
GdkFont *gdk_font_load(const gchar *) 已经过时,在用户手册上不推荐使用
下面的font 就是上面的chosen_font