python - how to make multiline wx.ListBox -
i need listbox show phone book.then need show name in top , number in bottom in each list item phone.how bind datas listbox.
now made listbox singleline shown below
cur.execute("select fname tblsample1 order fname") names = [str(item[0]) item in cur.fetchall()] lvnames=wx.listbox(panel,-1,(10,40),(210,180),names, wx.lb_single)
how bind sqlite3 cursor 2 columns listview
i need wx.listbox mouse click event(not evt_listbox because need mouse click event)
use htmllistbox, here little example started.
import wx class phonenumbers(wx.htmllistbox): def __init__(self, parent): wx.htmllistbox.__init__(self, parent) self.data = [ ("foo", "3452-453"), ("bar", "5672-346"), ] self.setitemcount(len(self.data)) def ongetitem(self, n): return "<b>%s</b><br>%s" % self.data[n] def add_number(self, name, number): self.data.append((name, number)) self.setitemcount(len(self.data)) self.refresh() class frame(wx.frame): def __init__(self): wx.frame.__init__(self, none, size=(200, 400)) self.numbers = phonenumbers(self) self.contact_name = wx.textctrl(self) self.contact_number = wx.textctrl(self) self.add_btn = wx.button(self, label="add contact") self.sizer = wx.boxsizer(wx.vertical) self.sizer.add(self.numbers, 1, wx.expand) self.sizer.add(wx.searchctrl(self), 0, wx.expand) self.sizer.add(wx.statictext(self, label="name"), 0, wx.top, 10) self.sizer.add(self.contact_name) self.sizer.add(wx.statictext(self, label="number"), 0, wx.top, 5) self.sizer.add(self.contact_number) self.sizer.add(self.add_btn, 0, wx.all, 10) self.numbers.bind(wx.evt_listbox, self.onselectnumber) self.add_btn.bind(wx.evt_button, self.onaddnumber) def onselectnumber(self, event): name, number = self.numbers.data[event.selection] self.contact_name.value = name self.contact_number.value = number def onaddnumber(self, event): self.numbers.add_number( self.contact_name.value, self.contact_number.value ) app = wx.pysimpleapp() app.topwindow = f = frame() f.show() app.mainloop()
Comments
Post a Comment