wxWidgets/wxPython/demo/wxFontDialog.py
2003-11-21 07:36:53 +00:00

130 lines
3.8 KiB
Python

from wxPython.wx import *
#---------------------------------------------------------------------------
class TestPanel(wxPanel):
def __init__(self, parent, log):
wxPanel.__init__(self, parent, -1)
self.log = log
btn = wxButton(self, -1, "Select Font")
EVT_BUTTON(self, btn.GetId(), self.OnSelectFont)
self.sampleText = wxTextCtrl(self, -1, "Sample Text")
#from wxPython.lib.stattext import wxGenStaticText
#self.sampleText = wxGenStaticText(self, -1, "Sample Text")
self.curFont = self.sampleText.GetFont()
self.curClr = wxBLACK
fgs = wxFlexGridSizer(cols=2, vgap=5, hgap=5)
fgs.AddGrowableCol(1)
fgs.AddGrowableRow(0)
fgs.Add(btn)
fgs.Add(self.sampleText, 0, wxADJUST_MINSIZE|wxGROW)
fgs.Add((15,15)); fgs.Add((15,15)) # an empty row
fgs.Add(wxStaticText(self, -1, "PointSize:"))
self.ps = wxStaticText(self, -1, "")
font = self.ps.GetFont()
font.SetWeight(wxBOLD)
self.ps.SetFont(font)
fgs.Add(self.ps, 0, wxADJUST_MINSIZE)
fgs.Add(wxStaticText(self, -1, "Family:"))
self.family = wxStaticText(self, -1, "")
self.family.SetFont(font)
fgs.Add(self.family, 0, wxADJUST_MINSIZE)
fgs.Add(wxStaticText(self, -1, "Style:"))
self.style = wxStaticText(self, -1, "")
self.style.SetFont(font)
fgs.Add(self.style, 0, wxADJUST_MINSIZE)
fgs.Add(wxStaticText(self, -1, "Weight:"))
self.weight = wxStaticText(self, -1, "")
self.weight.SetFont(font)
fgs.Add(self.weight, 0, wxADJUST_MINSIZE)
fgs.Add(wxStaticText(self, -1, "Face:"))
self.face = wxStaticText(self, -1, "")
self.face.SetFont(font)
fgs.Add(self.face, 0, wxADJUST_MINSIZE)
fgs.Add((15,15)); fgs.Add((15,15)) # an empty row
fgs.Add(wxStaticText(self, -1, "wxNativeFontInfo:"))
self.nfi = wxStaticText(self, -1, "")
self.nfi.SetFont(font)
fgs.Add(self.nfi, 0, wxADJUST_MINSIZE)
# give it some border space
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(fgs, 0, wxGROW|wxADJUST_MINSIZE|wxALL, 25)
self.SetSizer(sizer)
self.UpdateUI()
def UpdateUI(self):
self.sampleText.SetFont(self.curFont)
self.ps.SetLabel(str(self.curFont.GetPointSize()))
self.family.SetLabel(self.curFont.GetFamilyString())
self.style.SetLabel(self.curFont.GetStyleString())
self.weight.SetLabel(self.curFont.GetWeightString())
self.face.SetLabel(self.curFont.GetFaceName())
self.nfi.SetLabel(self.curFont.GetNativeFontInfo().ToString())
self.Layout()
def OnSelectFont(self, evt):
data = wxFontData()
data.EnableEffects(True)
data.SetColour(self.curClr) # set colour
data.SetInitialFont(self.curFont)
dlg = wxFontDialog(self, data)
if dlg.ShowModal() == wxID_OK:
data = dlg.GetFontData()
font = data.GetChosenFont()
colour = data.GetColour()
self.log.WriteText('You selected: "%s", %d points, color %s\n' %
(font.GetFaceName(), font.GetPointSize(),
colour.Get()))
self.curFont = font
self.curClr = colour
self.UpdateUI()
dlg.Destroy()
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestPanel(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
This class allows you to use the system font chooser dialog.
"""
if __name__ == '__main__':
import sys,os
import run
run.main(['', os.path.basename(sys.argv[0])])