星期二, 9月 28, 2010

gtk.FontSelectionDialog

這個類別可以選字型,只是,選好再呼叫它提供的 get_font_name() 以後,只會得到一個字串,裏面有字型的名稱、尺寸以及樣式,而且,還沒什麼規則可言,這造成我的困擾。

上網找了一陣,發現一般解法有兩種,一種是存取在 gtk.FontSelectionDialog 裡的 FontSelection.get_font_face,另一種則是透過 pango.FontDescription 來轉,我後來是用 pango.FontDescription 來轉。

用 pango.FontDescription 來轉是沒問題的,只是取得 font size 的時候,又遇到問題,原來這裡取得的大小會乘上 pango.SCALE,所以呼叫 get_size() 以後,還要除以 pango.SCALE,才是正確的。


def get_font_tuple( font_name ):
import pango
fontdesc = pango.FontDescription( font_name )
font_name = fontdesc.get_family()
font_size = fontdesc.get_size()/pango.SCALE
return (font_name, font_size)

沒有留言: