wxWidgets/wxPython/demo/CheckBox.py

74 lines
2.3 KiB
Python
Raw Normal View History

import wx
#---------------------------------------------------------------------------
class TestCheckBox(wx.Panel):
def __init__(self, parent, log):
self.log = log
wx.Panel.__init__(self, parent, -1)
st = wx.StaticText(self, -1, "This example demonstrates the wx.CheckBox control.")#, (10, 10))
cb1 = wx.CheckBox(self, -1, "Apples")#, (65, 40), (150, 20), wx.NO_BORDER)
cb2 = wx.CheckBox(self, -1, "Oranges")#, (65, 60), (150, 20), wx.NO_BORDER)
cb2.SetValue(True)
cb3 = wx.CheckBox(self, -1, "Pears")#, (65, 80), (150, 20), wx.NO_BORDER)
cb4 = wx.CheckBox(self, -1, "3-state checkbox",
style=wx.CHK_3STATE|wx.CHK_ALLOW_3RD_STATE_FOR_USER)
cb5 = wx.CheckBox(self, -1, "Align Right", style=wx.ALIGN_RIGHT)
self.Bind(wx.EVT_CHECKBOX, self.EvtCheckBox, cb1)
self.Bind(wx.EVT_CHECKBOX, self.EvtCheckBox, cb2)
self.Bind(wx.EVT_CHECKBOX, self.EvtCheckBox, cb3)
self.Bind(wx.EVT_CHECKBOX, self.EvtCheckBox, cb4)
self.Bind(wx.EVT_CHECKBOX, self.EvtCheckBox, cb5)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.AddMany( [ cb1,
cb2,
cb3,
(20,20),
cb4,
(20,20),
cb5
])
border = wx.BoxSizer(wx.VERTICAL)
border.Add(st, 0, wx.ALL, 15)
border.Add(sizer, 0, wx.LEFT, 50)
self.SetSizer(border)
def EvtCheckBox(self, event):
self.log.write('EvtCheckBox: %d\n' % event.IsChecked())
cb = event.GetEventObject()
if cb.Is3State():
self.log.write("\t3StateValue: %s\n" % cb.Get3StateValue())
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestCheckBox(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
A checkbox is a labelled box which is either on (checkmark is visible) or off
(no checkmark).
"""
#---------------------------------------------------------------------------
if __name__ == '__main__':
import sys,os
import run
run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])