from wxPython.wx import * #---------------------------------------------------------------------- class TestPanel(wxPanel): def __init__(self, parent, log): wxPanel.__init__(self, parent, -1) e = wxFontEnumerator() e.EnumerateFacenames() list = e.GetFacenames() list.sort() s1 = wxStaticText(self, -1, "Face names:") self.lb1 = wxListBox(self, -1, wxDefaultPosition, (200, 250), list, wxLB_SINGLE) EVT_LISTBOX(self, self.lb1.GetId(), self.OnSelect) self.txt = wxStaticText(self, -1, "Sample text...", (285, 50)) row = wxBoxSizer(wxHORIZONTAL) row.Add(s1, 0, wxALL, 5) row.Add(self.lb1, 0, wxALL, 5) row.Add(self.txt, 0, wxALL|wxADJUST_MINSIZE, 5) sizer = wxBoxSizer(wxVERTICAL) sizer.Add(row, 0, wxALL, 30) self.SetSizer(sizer) self.Layout() self.lb1.SetSelection(0) self.OnSelect(None) wxFutureCall(300, self.SetTextSize) def SetTextSize(self): self.txt.SetSize(self.txt.GetBestSize()) def OnSelect(self, evt): #print "OnSelect: " face = self.lb1.GetStringSelection() #print '\t '+face font = wxFont(28, wxDEFAULT, wxNORMAL, wxNORMAL, False, face) #print "\t got font" self.txt.SetLabel(face) #print "\t set label" self.txt.SetFont(font) #print "\t set font" #self.txt.SetSize(self.txt.GetBestSize()) #print "\t set size" ## st = font.GetNativeFontInfo().ToString() ## ni2 = wxNativeFontInfo() ## ni2.FromString(st) ## font2 = wxFontFromNativeInfo(ni2) #---------------------------------------------------------------------- def runTest(frame, nb, log): win = TestPanel(nb, log) return win #---------------------------------------------------------------------- overview = """ wxFontEnumerator enumerates either all available fonts on the system or only the ones with given attributes - either only fixed-width (suited for use in programs such as terminal emulators and the like) or the fonts available in the given encoding. """ if __name__ == '__main__': import sys,os import run run.main(['', os.path.basename(sys.argv[0])])