2010-07-19 111 views
1

有沒有一個地方可以獲得所有保證在任何帶有GTK的系統上出現的字體列表?我需要一種方法來爲某些圖設置理智的默認字體,當然,理智的默認字體必須存在。Sane默認字體?

編輯:如果沒有特定的字體保證是否存在,是否有一種簡單的方法來獲得一些理智的默認可縮放sans-serif字體?我不在乎細節。

編輯#2:如果在GTK上沒有任何事情可以得到保證,有人可以給我很好的平臺特定的默認可擴展sans-serif字體,保證在Windows和* nix/X11的任何合理安裝中都有。

回答

2

您應該在GTK +中使用的默認字體是「Sans」,「Monospace」和「Serif」。我不相信任何特定的字體是保證存在的。

+0

這些可縮放的字體是?我可以假設我需要的任何尺寸都存在嗎?另外,它們是否區分大小寫? – dsimcha 2010-07-19 14:49:24

+0

我認爲可以安全地假設Sans,Monospace和Serif是可擴展的,並且具有大小寫。它們只是給定平臺的默認字體。這些是您的應用中使用的正確的默認字體。如果它們被破壞了,那麼修復將會是平臺,而不是應用程序。 – 2010-07-23 02:15:48

4

因爲GTK是一個跨平臺的工具包,並且不安裝任何自己的字體,所以任何帶有GTK的系統都不能保證字體存在。

根據你如何渲染你的圖(開羅?),任何文本應該已經以默認字體繪製。 編輯:聽起來就像你用gdk_draw_layout()來繪製文字。這需要一個PangoLayout參數。如果你使用gtk_widget_create_pango_layout()獲得PangoLayout,那麼它應該已經有一個理智的默認字體集。你甚至可以通過使用pango_layout_get_context()得到PangoContext,然後在那裏調用pango_context_get_font_description()來找出什麼字體。

如果您還在使用GNOME,則可以使用GConf檢查/desktop/gnome/interface/font-name,/desktop/gnome/interface/monospace-font-name/desktop/gnome/interface/document-font-name鍵的值。

+0

現在我正在使用DrawingArea和gdk的drawable API。 – dsimcha 2010-07-19 14:57:05

+0

查看更新的答案。 – ptomato 2010-07-19 16:03:36