Did you paste any code ? Also the link for the next message is not working .....
John Salerno wrote: > [EMAIL PROTECTED] wrote: > > I am a newbie. I was looking for some code where I could a list of > > different items from a file and display it in a list box. Then give a > > user the capability to select some. > > > > Basically, reading and writing to a file and displaying them in > > different widgets...thats something I am looking for. If anybody can > > point me to some good example tutorials...I will be greatly helped. > > > > Thanks, > > > > Every help is appreciated > > > > Have you tried looking at the code in the wxPython demo? In the ListBox > control demo, it populates a ListBox with items from a list, but you > could easily translate that into reading from a file, I think. Here's > the full code in case you don't have the demo: > > > > > > import wx > > > > #--------------------------------------------------------------------------- > > > > # This listbox subclass lets you type the starting letters of what you want > > to > > # select, and scrolls the list to the match if it is found. > > class FindPrefixListBox(wx.ListBox): > > def __init__(self, parent, id, pos=wx.DefaultPosition, > > size=wx.DefaultSize, > > choices=[], style=0, validator=wx.DefaultValidator): > > wx.ListBox.__init__(self, parent, id, pos, size, choices, style, > > validator) > > self.typedText = '' > > self.log = parent.log > > self.Bind(wx.EVT_KEY_DOWN, self.OnKey) > > > > > > def FindPrefix(self, prefix): > > self.log.WriteText('Looking for prefix: %s\n' % prefix) > > > > if prefix: > > prefix = prefix.lower() > > length = len(prefix) > > > > # Changed in 2.5 because ListBox.Number() is no longer > > supported. > > # ListBox.GetCount() is now the appropriate way to go. > > for x in range(self.GetCount()): > > text = self.GetString(x) > > text = text.lower() > > > > if text[:length] == prefix: > > self.log.WriteText('Prefix %s is found.\n' % prefix) > > return x > > > > self.log.WriteText('Prefix %s is not found.\n' % prefix) > > return -1 > > > > > > def OnKey(self, evt): > > key = evt.GetKeyCode() > > > > if key >= 32 and key <= 127: > > self.typedText = self.typedText + chr(key) > > item = self.FindPrefix(self.typedText) > > > > if item != -1: > > self.SetSelection(item) > > > > elif key == wx.WXK_BACK: # backspace removes one character and > > backs up > > self.typedText = self.typedText[:-1] > > > > if not self.typedText: > > self.SetSelection(0) > > else: > > item = self.FindPrefix(self.typedText) > > > > if item != -1: > > self.SetSelection(item) > > else: > > self.typedText = '' > > evt.Skip() > > > > def OnKeyDown(self, evt): > > pass > > > > > > #--------------------------------------------------------------------------- > > > > class TestListBox(wx.Panel): > > def __init__(self, parent, log): > > self.log = log > > wx.Panel.__init__(self, parent, -1) > > > > sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', > > 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', > > 'twelve', 'thirteen', 'fourteen'] > > > > wx.StaticText(self, -1, "This example uses the wx.ListBox > > control.", (45, 10)) > > wx.StaticText(self, -1, "Select one:", (15, 50)) > > self.lb1 = wx.ListBox(self, 60, (100, 50), (90, 120), sampleList, > > wx.LB_SINGLE) > > self.Bind(wx.EVT_LISTBOX, self.EvtListBox, self.lb1) > > self.Bind(wx.EVT_LISTBOX_DCLICK, self.EvtListBoxDClick, self.lb1) > > self.lb1.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) > > self.lb1.SetSelection(3) > > self.lb1.Append("with data", "This one has data"); > > self.lb1.SetClientData(2, "This one has data"); > > > > > > wx.StaticText(self, -1, "Select many:", (220, 50)) > > self.lb2 = wx.ListBox(self, 70, (320, 50), (90, 120), sampleList, > > wx.LB_EXTENDED) > > self.Bind(wx.EVT_LISTBOX, self.EvtMultiListBox, self.lb2) > > self.lb2.Bind(wx.EVT_RIGHT_UP, self.EvtRightButton) > > self.lb2.SetSelection(0) > > > > sampleList = sampleList + ['test a', 'test aa', 'test aab', > > 'test ab', 'test abc', 'test abcc', > > 'test abcd' ] > > sampleList.sort() > > wx.StaticText(self, -1, "Find Prefix:", (15, 250)) > > fp = FindPrefixListBox(self, -1, (100, 250), (90, 120), sampleList, > > wx.LB_SINGLE) > > fp.SetSelection(0) > > > > > > def EvtListBox(self, event): > > self.log.WriteText('EvtListBox: %s, %s, %s, %s\n' % > > (event.GetString(), > > event.IsSelection(), > > event.GetSelection(), > > event.GetClientData())) > > > > lb = event.GetEventObject() > > data = lb.GetClientData(lb.GetSelection()) > > > > if data is not None: > > self.log.WriteText('\tdata: %s\n' % data) > > > > > > def EvtListBoxDClick(self, event): > > self.log.WriteText('EvtListBoxDClick: %s\n' % > > self.lb1.GetSelection()) > > self.lb1.Delete(self.lb1.GetSelection()) > > > > def EvtMultiListBox(self, event): > > self.log.WriteText('EvtMultiListBox: %s\n' % > > str(self.lb2.GetSelections())) > > > > def EvtRightButton(self, event): > > self.log.WriteText('EvtRightButton: %s\n' % event.GetPosition()) > > > > if event.GetEventObject().GetId() == 70: > > selections = list(self.lb2.GetSelections()) > > selections.reverse() > > > > for index in selections: > > self.lb2.Delete(index) > > > > > > #--------------------------------------------------------------------------- > > > > def runTest(frame, nb, log): > > win = TestListBox(nb, log) > > return win > > > > #--------------------------------------------------------------------------- > > > > > > > > > > overview = """<html><body> > > A listbox is used to select one or more of a list of > > strings. The strings are displayed in a scrolling box, with the > > selected string(s) marked in reverse video. A listbox can be single > > selection (if an item is selected, the previous selection is removed) > > or multiple selection (clicking an item toggles the item on or off > > independently of other selections). > > </body></html> > > """ > > > > > > if __name__ == '__main__': > > import sys,os > > import run > > run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) > > -- http://mail.python.org/mailman/listinfo/python-list