2010-04-25 112 views
3

我有一個PangoFontDescription,我想知道它是否描述了一個等寬字體。如何判斷一個字體是否使用GTK和Pango等寬字體?

我所見過的功能pango_font_family_is_monospace()使用Pango API文檔中,但幾個小時令人費解它仍然不是很清楚,我的關係是PangoFontFamilyPangoFontMapPangoFontPangoFontsetPangoContextPangoFontDescription和我是否需要任何什麼之間的後或所有這些來實現我想要的。目前爲止,PangoFontDescription是我需要使用的唯一一部分Pango,因爲GTK設法將其他所有內容都抽象出來。

誰能幫我解決這個問題嗎?

回答

3

您可以使用pango_font_description_get_family(),然後在結果上調用pango_font_family_is_monospace()

編輯:

由於pango_font_description_get_family()回報只有你能做到這一點的名稱:呼叫pango_context_list_families()和搜索具有該名稱的家庭對象。之後,在找到的對象上調用pango_font_family_is_monospace()。但是,如果沒有找到具有該名稱的家庭對象,不知道該怎麼辦。

+1

但pango_font_description_get_family()返回字體系列的名稱,而pangofont_family_is_monospace()需要一個實際的PangoFontFamily指針。我不認爲這有效。 – unwind 2010-04-25 12:27:38

+0

@unwind:請參閱編輯。 – doublep 2010-04-25 12:31:09

+0

如何從'PangoFontDescription'中獲得'PangoContext'?通常'PangoContext'與一個'GtkWidget'關聯,但在我看來,我不應該需要一個小部件來確定一個字體是否是等寬字體。 – ptomato 2010-04-25 12:34:43

相關問題