2012-08-07 102 views
2

我有一個使用pygtk的fontbutton。最初,我不想設置字體,因爲系統將採用其默認的字體。我的問題是獲取系統使用的默認字體的代碼行是什麼,以便我首先保留默認字體。稍後在用戶更改字體後,他們各自的字體應該適用。 任何人都可以幫忙嗎?如何使用pygtk或pango獲取系統使用的默認字體?

回答

0

Gtk是一個工具包,可以在許多操作系統和桌面環境中運行。 Gtk不對默認字體和顏色負責。因此,據我所知,沒有單一函數可以從Gtk獲取這些值

可能沒有一個默認字體在您的操作系統/ DE,但很多。在Ubuntu例如,你可以選擇那些在(高級)系統設置:

enter image description here

如果需要知道一個特定的部件,例如默認字體一個標籤,您可以執行以下操作:

from gi.repository import Gtk 
l = Gtk.Label("Hello") 
ls = l.get_style() 
ls.font_desc.to_string() 
# Ubuntu 11 
+0

我不能得到系統使用任何API的默認字體?使用python,pango或pygtk? – mrabhiram 2012-08-07 09:46:03

+0

據我所知,沒有抽象所有可能的系統的庫。對於Iphone,這裏似乎有文檔:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIFont_Class/Reference/Reference.html#//apple_ref/occ/clm/UIFont/ systemFontOfSize:對於Ubuntu,您應該查看gconftool(http://askubuntu.com/questions/4989/reset-gnome-font-configuration),等等...... – xubuntix 2012-08-07 10:11:57

3

如果您使用的是GNOME,那麼您可以獲得像這樣的默認字體。 (注意:未經測試)

from gi.repository import Gio 
settings = Gio.Settings('org.gnome.desktop.interface') 
font_name = settings.get_string('font-name') 

您也可以使用鍵monospace-font-namedocument-font-name適當的(我忘了窗口標題字體的鍵的名稱。)

1

有些晚,但如果有人面臨這在未來,一個簡單的方法是使用pygame的字體模塊。當然這需要你安裝並導入pygame並初始化它!

import pygame 
pygame.font.init() 
def_font = pygame.font.get_default_font() 
相關問題