[Boa Constr] Re: How to realize the wxListCtrl in Boa ?
Status: Beta
Brought to you by:
riaan
From: Frankiewang <fr...@ia...> - 2004-11-24 14:11:31
|
Maybe you use some newsgroup software to check news, but i checked them based on web, so i can not send a e-mail to the address like gmane.comp.ide.boa- constructor.user. Anyway i just post source code there, you can use Ctrl + C and Ctrl + V to your Boa Constructor, see you :) wxFrame1.py: #Boa:Frame:wxFrame1 from wxPython.wx import * from wxPython.lib.mixins.listctrl import wxColumnSorterMixin, wxListCtrlAutoWidthMixin musicdata = { 1 : ("Bad English", "The Price Of Love", "Rock", "A"), 2 : ("DNA featuring Suzanne Vega", "Tom's Diner", "Rock", "B"), 3 : ("George Michael", "Praying For Time", "Rock", "C"), 4 : ("Gloria Estefan", "Here We Are", "Rock", "D"), 5 : ("Linda Ronstadt", "Don't Know Much", "Rock", "A"), 6 : ("Michael Bolton", "How Am I Supposed To Live Without You", "Blues", "B"), 7 : ("Paul Young", "Oh Girl", "Rock", "C"), 8 : ("Paula Abdul", "Opposites Attract", "Rock", "A"), 9 : ("Richard Marx", "Should've Known Better", "Rock", "C"), 10: ("Rod Stewart", "Forever Young", "Rock", "B"), 11: ("Roxette", "Dangerous", "Rock", "B"), 12: ("Sheena Easton", "The Lover In Me", "Rock", "A"), 13: ("Sinead O'Connor", "Nothing Compares 2 U", "Rock", "C"), 14: ("Stevie B.", "Because I Love You", "Rock", "B"), 15: ("Taylor Dayne", "Love Will Lead You Back", "Rock", "C"), 16: ("The Bangles", "Eternal Flame", "Rock", "A"), 17: ("Wilson Phillips", "Release Me", "Rock", "A"), 18: ("Billy Joel", "Blonde Over Blue", "Rock", "B"), 19: ("Billy Joel", "Famous Last Words", "Rock", "C"), 20: ("Billy Joel", "Lullabye (Goodnight, My Angel)", "Rock", "B"), 21: ("Billy Joel", "The River Of Dreams", "Rock", "C"), 22: ("Billy Joel", "Two Thousand Years", "Rock", "B"), 23: ("Janet Jackson", "Alright", "Rock", "B"), 24: ("Janet Jackson", "Black Cat", "Rock", "B"), 25: ("Janet Jackson", "Come Back To Me", "Rock", "C"), 26: ("Janet Jackson", "Escapade", "Rock", "D"), 27: ("Janet Jackson", "Love Will Never Do (Without You)", "Rock", "C"), 28: ("Janet Jackson", "Miss You Much", "Rock", "D"), 29: ("Janet Jackson", "Rhythm Nation", "Rock", "A"), 30: ("Janet Jackson", "State Of The World", "Rock", "A"), 31: ("Janet Jackson", "The Knowledge", "Rock", "D"), 32: ("Spyro Gyra", "End of Romanticism", "Jazz", "B"), 33: ("Spyro Gyra", "Heliopolis", "Jazz", "D"), 34: ("Spyro Gyra", "Jubilee", "Jazz", "C"), 35: ("Spyro Gyra", "Little Linda", "Jazz", "D"), 36: ("Spyro Gyra", "Morning Dance", "Jazz", "C"), 37: ("Spyro Gyra", "Song for Lorraine", "Jazz", "A"), 38: ("Yes", "Owner Of A Lonely Heart", "Rock", "C"), 39: ("Yes", "Rhythm Of Love", "Rock", "B"), 40: ("Cusco", "Dream Catcher", "New Age", "C"), 41: ("Cusco", "Geronimos Laughter", "New Age", "A"), 42: ("Cusco", "Ghost Dance", "New Age", "B"), 43: ("Blue Man Group", "Drumbone", "New Age", "C"), 44: ("Blue Man Group", "Endless Column", "New Age", "D"), 45: ("Blue Man Group", "Klein Mandelbrot", "New Age", "A"), 46: ("Kenny G", "Silhouette", "Jazz", "B"), 47: ("Sade", "Smooth Operator", "Jazz", "C"), 48: ("David Arkenstone", "Papillon (On The Wings Of The Butterfly)", "New Age", "D"), 49: ("David Arkenstone", "Stepping Stars", "New Age", "A"), 50: ("David Arkenstone", "Carnation Lily Lily Rose", "New Age", "A"), 51: ("David Lanz", "Behind The Waterfall", "New Age", "B"), 52: ("David Lanz", "Cristofori's Dream", "New Age", "B"), 53: ("David Lanz", "Heartsounds", "New Age", "C"), 54: ("David Lanz", "Leaves on the Seine", "New Age", "C"), } def create(parent): return wxFrame1(parent) [wxID_WXFRAME1, wxID_WXFRAME1PANEL1, wxID_WXFRAME1PANEL2, wxID_WXFRAME1PANEL3, wxID_WXFRAME1SPLITTERWINDOW1, wxID_WXFRAME1TEST1, wxID_WXFRAME1TEST2, ] = map(lambda _init_ctrls: wxNewId(), range(7)) class wxFrame1(wxFrame,wxColumnSorterMixin): def _init_coll_test1_Columns(self, parent): # generated method, don't edit parent.InsertColumn(col=0, format=wxLIST_FORMAT_LEFT, heading='Artist', width=-1) parent.InsertColumn(col=1, format=wxLIST_FORMAT_LEFT, heading='Title', width=-1) parent.InsertColumn(col=2, format=wxLIST_FORMAT_LEFT, heading='Genre', width=-1) parent.InsertColumn(col=3, format=wxLIST_FORMAT_LEFT, heading='Comment', width=-1) def _init_ctrls(self, prnt): # generated method, don't edit wxFrame.__init__(self, id=wxID_WXFRAME1, name='', parent=prnt, pos=wxPoint(312, 237), size=wxSize(636, 487), style=wxDEFAULT_FRAME_STYLE, title='wxFrame1') self.SetClientSize(wxSize(628, 460)) self.panel1 = wxPanel(id=wxID_WXFRAME1PANEL1, name='panel1', parent=self, pos=wxPoint(0, 0), size=wxSize(628, 460), style=wxTAB_TRAVERSAL) self.splitterWindow1 = wxSplitterWindow (id=wxID_WXFRAME1SPLITTERWINDOW1, name='splitterWindow1', parent=self.panel1, point=wxPoint(8, 40), size=wxSize(616, 416), style=wxSP_3D) self.splitterWindow1.SetSashSize(5) self.panel2 = wxPanel(id=wxID_WXFRAME1PANEL2, name='panel2', parent=self.splitterWindow1, pos=wxPoint(2, 2), size=wxSize(612, 298), style=wxTAB_TRAVERSAL) self.panel3 = wxPanel(id=wxID_WXFRAME1PANEL3, name='panel3', parent=self.splitterWindow1, pos=wxPoint(2, 305), size=wxSize (612, 109), style=wxTAB_TRAVERSAL) self.splitterWindow1.SplitHorizontally(self.panel2, self.panel3, 300) self.test1 = wxListCtrl(id=wxID_WXFRAME1TEST1, name='test1', parent=self.panel2, pos=wxPoint(0, 0), size=wxSize(616, 296), style=wxHSCROLL | wxVSCROLL | wxLC_REPORT | wxLC_SORT_DESCENDING | wxLC_SORT_ASCENDING | wxLC_ICON) self._init_coll_test1_Columns(self.test1) EVT_LIST_COL_END_DRAG(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListColEndDrag) EVT_LIST_COL_DRAGGING(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListColDragging) EVT_LIST_COL_BEGIN_DRAG(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListColBeginDrag) EVT_LIST_COL_RIGHT_CLICK(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListColRightClick) EVT_LIST_COL_CLICK(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListColClick) EVT_LIST_ITEM_RIGHT_CLICK(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListItemRightClick) EVT_LIST_INSERT_ITEM(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListInsertItem) EVT_LIST_ITEM_DESELECTED(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListItemDeselected) EVT_LIST_ITEM_SELECTED(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListItemSelected) EVT_LIST_BEGIN_RDRAG(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListBeginRdrag) EVT_LIST_BEGIN_DRAG(self.test1, wxID_WXFRAME1TEST1, self.OnTest1ListBeginDrag) EVT_RIGHT_DCLICK(self.test1, self.OnTest1RightDclick) EVT_LEFT_DCLICK(self.test1, self.OnTest1LeftDclick) self.test2 = wxListBox(choices=[], id=wxID_WXFRAME1TEST2, name='test2', parent=self.panel3, pos=wxPoint(0, 0), size=wxSize(616, 112), style=0) def __init__(self, parent): #global musicdata self._init_ctrls(parent) self.SetData() self.itemDataMap = musicdata wxColumnSorterMixin.__init__(self, 4) def GetListCtrl(self): return self.test1 def SetData(self): #global musicdata items = musicdata.items() for x in range(len(items)): key, data = items[x] self.test1.SetStringItem(x, 0, data[0]) self.test1.SetStringItem(x, 1, data[1]) self.test1.SetStringItem(x, 2, data[2]) self.test1.SetStringItem(x, 3, data[3]) self.test1.SetItemData(x, key) #self.test2.Append( str(musicdata) ) def OnTest1ListColEndDrag(self, event): event.Skip() def OnTest1ListColDragging(self, event): event.Skip() def OnTest1ListColBeginDrag(self, event): event.Skip() def OnTest1ListColRightClick(self, event): event.Skip() def OnTest1ListColClick(self, event): event.Skip() def OnTest1ListItemRightClick(self, event): event.Skip() def OnTest1ListInsertItem(self, event): #self.itemDataMap = musicdata #wxColumnSorterMixin.__init__(self, 4) #items = musicdata.items() #for x in range(len(items)): #key, data = items[x] #self.test1.SetStringItem(x, 0, data[0]) #self.test1.SetStringItem(x, 1, data[1]) #self.test1.SetStringItem(x, 2, data[2]) #self.test1.SetStringItem(x, 3, data[3]) #self.test1.SetItemData(x, key) event.Skip() def OnTest1ListItemDeselected(self, event): event.Skip() def OnTest1ListItemSelected(self, event): event.Skip() def OnTest1ListBeginRdrag(self, event): event.Skip() def OnTest1ListBeginDrag(self, event): event.Skip() def OnTest1RightDclick(self, event): event.Skip() def OnTest1LeftDclick(self, event): event.Skip() wxApp1.py: #!/usr/bin/env python #Boa:App:BoaApp from wxPython.wx import * import wxFrame1 modules ={'wxFrame1': [1, 'Main frame of Application', 'wxFrame1.py']} class BoaApp(wxApp): def OnInit(self): wxInitAllImageHandlers() self.main = wxFrame1.create(None) self.main.Show() self.SetTopWindow(self.main) return True def main(): application = BoaApp(0) application.MainLoop() if __name__ == '__main__': main() |