1 # 11/30/2003 - Jeff Grimmett (grimmtooth@softhome.net)
3 # o EVT_SPIN events (or something about them) freezes up the app.
8 #----------------------------------------------------------------------
10 class TestPanel(wx
.Panel
):
11 def __init__(self
, parent
, log
):
12 wx
.Panel
.__init
__(self
, parent
, -1)
16 wx
.StaticText(self
, -1, "This example uses the wx.SpinButton control.", (45, 15))
18 self
.text
= wx
.TextCtrl(self
, -1, "1", (30, 50), (60, -1))
19 h
= self
.text
.GetSize().height
21 self
.spin
= wx
.SpinButton(self
, -1, (92, 50), (h
/2, h
), wx
.SP_VERTICAL
)
22 self
.spin
.SetRange(1, 100)
25 self
.Bind(wx
.EVT_SPIN
, self
.OnSpin
, self
.spin
)
28 def OnSpin(self
, event
):
29 self
.text
.SetValue(str(event
.GetPosition()))
32 #----------------------------------------------------------------------
34 def runTest(frame
, nb
, log
):
35 win
= TestPanel(nb
, log
)
38 #----------------------------------------------------------------------
42 A wx.SpinButton has two small up and down (or left and right) arrow buttons.
43 It is often used next to a text control for increment and decrementing a value.
44 Portable programs should try to use wx.SpinCtrl instead as wx.SpinButton is not
45 implemented for all platforms (Win32 and GTK only currently).
47 NB: the range supported by this control (and wx.SpinCtrl) depends on the platform
48 but is at least -0x8000 to 0x7fff. Under GTK and Win32 with sufficiently new version
49 of comctrl32.dll (at least 4.71 is required, 5.80 is recommended) the full 32 bit
54 if __name__
== '__main__':
57 run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])