#!/usr/bin/python import pygtk pygtk.require ('2.0') import gtk, pango import sys model = gtk.ListStore (pango.FontDescription, str) window = gtk.Window () sw = gtk.ScrolledWindow () sw.set_policy (gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) treeview = gtk.TreeView (model) window.add (sw) sw.add (treeview) renderer = gtk.CellRendererText () renderer.set_property ('text', sys.argv[1]) treeview.insert_column_with_attributes (-1, "Preview", renderer, font_desc = 0) renderer = gtk.CellRendererText () treeview.insert_column_with_attributes (-1, "Font", renderer, text = 1) context = window.create_pango_context () layout = pango.Layout (context) layout.set_markup ('%s' % sys.argv[1]) for family in context.list_families (): face = family.list_faces ()[0] name = "%s %s" % (family.get_name (), face.get_face_name ()) desc = face.describe () desc.set_size (pango.SCALE * 80) layout.set_font_description (desc) if layout.get_unknown_glyphs_count () > 0: continue model.append ((desc, name)) window.set_default_size (400, 600) window.connect ('destroy', lambda *q: gtk.main_quit ()) window.show_all () gtk.main ()