2010-08-14 11 views
1

Le code suivant doit renvoyer la largeur en pixels du caractère 'a' dans la police par défaut; il ne fait pas:La largeur de police renvoie des valeurs incorrectes

import pygtk 
gtk.require20() 
import gtk 

t = gtk.TextView() 
print t.get_style().get_font().width("w") # Always returns -6 
+0

t.get_style.string_width ("test") ne fonctionne pas non plus car il retourne seulement 6. – aberkowitz

Répondre

1

gtk.Style.get_font() est dépréciée, comme en témoigne le DeprecationWarning que vous obtenez lorsque vous essayez de l'appeler; Je suppose que c'est pour ça que ça ne marche pas. Sur mon PyGTK, il n'existe aucune fonction telle que gtk.Style.string_width().

Vous devez utiliser Pango:

import pygtk 
pygtk.require20() 
import gtk 

t = gtk.TextView() 
print t.create_pango_layout('w').get_pixel_size()