berawal dari script seperti ini, lalu saya coba impelementasikan pada Boa Constructor sebagai Visual Python. :-D
nah untuk membuat Choice Editor pada Grid atau combobox di dalam Grid sebenarnya hanya menggunakan fungsi yang sudah disedikan oleh python,tinggal memanggil library grid pada wx, untuk membuat choicenya yaitu menggunakan GridCellChoiceEditor
perhatikan contoh berikut :
import wx, wx.grid as grd class MyGrid(grd.Grid): def __init__(self, parent): grd.Grid.__init__(self, parent, -1, pos=(10,40), size=(420,95)) self.CreateGrid(3,3) self.RowLabelSize = 0 self.ColLabelSize = 20 attr = grd.GridCellAttr() attr.SetEditor(grd.GridCellChoiceEditor(["", "first", "second"], False)) self.SetColAttr(1,attr) self.SetColSize(1,90) self.Bind(grd.EVT_GRID_CELL_LEFT_CLICK,self.onMouse) self.Bind(grd.EVT_GRID_SELECT_CELL,self.onCellSelected) self.Bind(grd.EVT_GRID_EDITOR_CREATED, self.onEditorCreated) def onMouse(self,evt): if evt.Col == 1: pass #wx.CallLater(100,self.toggleCheckBox) evt.Skip() def onCellSelected(self,evt): if evt.Col == 1 and evt.Row >= 1: wx.CallAfter(self.EnableCellEditControl) evt.Skip() def onEditorCreated(self,evt): if evt.Col == 1: pass evt.Skip() class TestFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Custom cell editor test", size=(250,200)) panel = wx.Panel(self,style=0) grid = MyGrid(panel) grid.SetFocus() self.CentreOnScreen() class MyApp(wx.App): def OnInit(self): frame = TestFrame(None) frame.Show(True) self.SetTopWindow(frame) return True MyApp(0).MainLoop()
0 comments:
Post a Comment