2014-12-20 2 views
0

Wxpython, 편집 가능한 목록 Ctrl을 생성하는 아래 코드를 제공합니다. 새 열의 CheckList (CheckListCtrlMixin)를 추가하고 싶습니다.wxpython EditableListCtrl 및 CheckListCtrlMixin을 결합하십시오.

이 작업을 수행하는 방법에 대한 도움이나 예가 있으면 감사하겠습니다.

import wx 
import wx.lib.mixins.listctrl as listmix 

######################################################################## 
class EditableListCtrl(wx.ListCtrl, listmix.TextEditMixin): 
    ''' TextEditMixin allows any column to be edited. ''' 

    #---------------------------------------------------------------------- 
    def __init__(self, parent, ID=wx.ID_ANY, pos=wx.DefaultPosition, 
       size=wx.DefaultSize, style=0): 
     """Constructor""" 
     wx.ListCtrl.__init__(self, parent, ID, pos, size, style) 
     listmix.TextEditMixin.__init__(self) 

######################################################################## 
class MyPanel(wx.Panel): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self, parent): 
     """Constructor""" 
     wx.Panel.__init__(self, parent) 

     rows = [("Ford", "Taurus", "1996", "Blue"), 
       ("Nissan", "370Z", "2010", "Green"), 
       ("Porche", "911", "2009", "Red") 
       ] 
     self.list_ctrl = EditableListCtrl(self, style=wx.LC_REPORT) 

     self.list_ctrl.InsertColumn(0, "Make") 
     self.list_ctrl.InsertColumn(1, "Model") 
     self.list_ctrl.InsertColumn(2, "Year") 
     self.list_ctrl.InsertColumn(3, "Color") 

     index = 0 
     for row in rows: 
      self.list_ctrl.InsertStringItem(index, row[0]) 
      self.list_ctrl.SetStringItem(index, 1, row[1]) 
      self.list_ctrl.SetStringItem(index, 2, row[2]) 
      self.list_ctrl.SetStringItem(index, 3, row[3]) 
      index += 1 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(self.list_ctrl, 0, wx.ALL|wx.EXPAND, 5) 
     self.SetSizer(sizer) 


######################################################################## 
class MyFrame(wx.Frame): 
    """""" 

    #---------------------------------------------------------------------- 
    def __init__(self): 
     """Constructor""" 
     wx.Frame.__init__(self, None, wx.ID_ANY, "Editable List Control") 
     panel = MyPanel(self) 
     self.Show() 

#---------------------------------------------------------------------- 
if __name__ == "__main__": 
    app = wx.App(False) 
    frame = MyFrame() 
    app.MainLoop() 

답변

0

음, 어디

class EditableListCtrl(wx.ListCtrl, listmix.TextEditMixin,listmix.CheckListCtrlMixin): 
    ''' TextEditMixin allows any column to be edited. ''' 

    #---------------------------------------------------------------------- 
    def __init__(self, parent, ID=wx.ID_ANY, pos=wx.DefaultPosition, 
       size=wx.DefaultSize, style=0): 
     """Constructor""" 
     wx.ListCtrl.__init__(self, parent, ID, pos, size, style) 
     listmix.TextEditMixin.__init__(self) 
     listmix.CheckListCtrlMixin.__init__(self)