Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Making items visible in wxPython wxListCtrl

Reply
Thread Tools

Making items visible in wxPython wxListCtrl

 
 
Piet
Guest
Posts: n/a
 
      05-18-2004
Hi there.
I am trying to display tabular data in a wxListCtrl. What I get from
the script below are only the headers, not the items themselves. The
documentation didnīt help me much; instead I was lost in ListItemIdīs
and different possibilities of inserting items and strings. I am sure
the solution is only one step away, but I need somebody to point in
the direction. Heres the script:

from wxPython.wx import *
class MainWindow(wxFrame):
def __init__(self,parent,id,title):
wxFrame.__init__(self,parent,-1, title,
style=wxDEFAULT_FRAME_STYLE)
self.panel = wxPanel(self,-1)
self.Lctrl = wxListCtrl(self.panel,-1,size=(200,200),style =
wxLC_REPORT)
for i in range(2):
self.Lctrl.InsertColumn(i,"Column"+str(i),format=w xLIST_FORMAT_LEFT,width=100)
self.Lctrl.SetStringItem(i,1,"Hi")
self.Lctrl.SetStringItem(i,2,"there")
self.Lctrl.SetItemData(i,1)


app = wxPySimpleApp()
frame = MainWindow(None, -1, "List Control Test")
frame.Show(1)
app.MainLoop()

Best regards

Peter
 
Reply With Quote
 
 
 
 
Greg Krohn
Guest
Posts: n/a
 
      05-18-2004
Piet wrote:
> Hi there.
> I am trying to display tabular data in a wxListCtrl. What I get from
> ...


I hope this clears it up.


from wxPython.wx import *
class MainWindow(wxFrame):
def __init__(self,parent,id,title):
wxFrame.__init__(self,parent,-1, title,
style=wxDEFAULT_FRAME_STYLE)
self.panel = wxPanel(self,-1)
self.Lctrl = wxListCtrl(self.panel,-1,
size=(200,200),style =wxLC_REPORT)

# for i in range(2):
# self.Lctrl.InsertColumn(i, "Column"+str(i),
# format=wxLIST_FORMAT_LEFT,width=100)
# self.Lctrl.SetStringItem(i,1,"Hi")
# self.Lctrl.SetStringItem(i,2,"there")
# self.Lctrl.SetItemData(i,1)

self.Lctrl.InsertColumn(0, "Name")
self.Lctrl.InsertColumn(1, "ID")
self.Lctrl.InsertColumn(2, "Spam Level")

people = [["George", "3t4d3", "5"],
["Beth", "34g245", "3"],
["Zaphod", "424242", "42"]]

# Notice you use InsertStringItem for the first item
# in the row and then use SetStringItem for the rest
for index, (name, id, spam) in enumerate(people):
self.Lctrl.InsertStringItem(index, name)
self.Lctrl.SetStringItem(index, 1, id)
self.Lctrl.SetStringItem(index, 2, spam)


app = wxPySimpleApp()
frame = MainWindow(None, -1, "List Control Test")
frame.Show(1)
app.MainLoop()



> Best regards
>
> Peter


Ditto,
greg

 
Reply With Quote
 
 
 
 
moma
Guest
Posts: n/a
 
      05-18-2004
Piet wrote:
> Hi there.
> I am trying to display tabular data in a wxListCtrl. What I get from
> the script below are only the headers, not the items themselves. The
> documentation didnīt help me much; instead I was lost in ListItemIdīs
> and different possibilities of inserting items and strings. I am sure
> the solution is only one step away, but I need somebody to point in
> the direction. Heres the script:
>
> from wxPython.wx import *
> class MainWindow(wxFrame):
> def __init__(self,parent,id,title):
> wxFrame.__init__(self,parent,-1, title,
> style=wxDEFAULT_FRAME_STYLE)
> self.panel = wxPanel(self,-1)
> self.Lctrl = wxListCtrl(self.panel,-1,size=(200,200),style =
> wxLC_REPORT)
> for i in range(2):
> self.Lctrl.InsertColumn(i,"Column"+str(i),format=w xLIST_FORMAT_LEFT,width=100)
> self.Lctrl.SetStringItem(i,1,"Hi")
> self.Lctrl.SetStringItem(i,2,"there")
> self.Lctrl.SetItemData(i,1)
>
>
> app = wxPySimpleApp()
> frame = MainWindow(None, -1, "List Control Test")
> frame.Show(1)
> app.MainLoop()
>
> Best regards
>
> Peter



Mixing rows and columns ?


> for i in range(2):
>> self.Lctrl.InsertColumn(i,"Column"+str(i),format=w xLIST_FORMAT_LEFT,width=100)
>> self.Lctrl.SetStringItem(i,1,"Hi")
>> self.Lctrl.SetStringItem(i,2,"there")
>> self.Lctrl.SetItemData(i,1)
>>


# Create 2 columns
for i in range(2):
self.Lctrl.InsertColumn(i,"Column"+str(i),
format=wxLIST_FORMAT_LEFT,width=100)


# Add 6 rows of data
for i in range(6):
self.Lctrl.InsertStringItem(i,"Hi") # Col 0
self.Lctrl.SetStringItem(i,1,"there") # Col 1
self.Lctrl.SetItemData(i,1)



http://wiki.wxpython.org/index.cgi/ListControls


Cheers,
// moma
http://www.futuredesktop.org







 
Reply With Quote
 
Piet
Guest
Posts: n/a
 
      05-19-2004
Shame on me....
Looks like as if wanted to populate a non-existing column with data.
Anyway, now evrything is working properly. Many, many thanks! That helped me a lot.

Piet
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Sort items in wxListCtrl Miki Tebeka Python 2 11-03-2011 12:06 AM
Limit the size of wxListCtrl in wxpython imperialguy Python 0 04-13-2011 01:05 PM
wxpython wxlistctrl with combo Fabio Pliger Python 1 06-14-2005 07:45 AM
wxPython: wxGrid vs. wxListCtrl Piet Python 4 07-05-2004 05:29 AM
wxPython: combining wxListCtrl and wxCheckBox Mark Carter Python 1 12-01-2003 04:21 PM



Advertisments