2 from wxPython
.wx
import *
4 #---------------------------------------------------------------------------
6 class TestComboBox(wxPanel
):
7 def OnSetFocus(self
, evt
):
10 def OnKillFocus(self
, evt
):
14 def __init__(self
, parent
, log
):
16 wxPanel
.__init
__(self
, parent
, -1)
18 sampleList
= ['zero', 'one', 'two', 'three', 'four', 'five',
19 'six', 'seven', 'eight']
21 wxStaticText(self
, -1, "This example uses the wxComboBox control.",
24 wxStaticText(self
, -1, "Select one:", wxPoint(15, 50), wxSize(75, 18))
25 cb
= wxComboBox(self
, 500, "default value", wxPoint(80, 50), wxSize(95, -1),
26 sampleList
, wxCB_DROPDOWN|wxTE_PROCESS_ENTER
)
27 EVT_COMBOBOX(self
, 500, self
.EvtComboBox
)
28 EVT_TEXT(self
, 500, self
.EvtText
)
29 EVT_TEXT_ENTER(self
, 500, self
.EvtTextEnter
)
30 EVT_SET_FOCUS(cb
, self
.OnSetFocus
)
31 EVT_KILL_FOCUS(cb
, self
.OnKillFocus
)
33 cb
.Append("foo", "This is some client data for this item")
35 cb
= wxComboBox(self
, 501, "default value", wxPoint(80, 80), wxSize(95, -1),
37 for item
in sampleList
:
38 cb
.Append(item
, string
.upper(item
))
39 EVT_COMBOBOX(self
, 501, self
.EvtComboBox
)
40 EVT_TEXT(self
, 501, self
.EvtText
)
43 def EvtComboBox(self
, evt
):
44 cb
= evt
.GetEventObject()
45 data
= cb
.GetClientData(cb
.GetSelection())
46 self
.log
.WriteText('EvtComboBox: %s\nClientData: %s\n' % (evt
.GetString(), data
))
48 def EvtText(self
, evt
):
49 self
.log
.WriteText('EvtText: %s\n' % evt
.GetString())
51 def EvtTextEnter(self
, evt
):
52 self
.log
.WriteText('EvtTextEnter: does this work?')
54 #---------------------------------------------------------------------------
56 def runTest(frame
, nb
, log
):
57 win
= TestComboBox(nb
, log
)
60 #---------------------------------------------------------------------------
74 A combobox is like a combination of an edit control and a listbox. It can be displayed as static list with editable or read-only text field; or a drop-down list with text field; or a drop-down list without a text field.