2005年12月23日 星期五 15:04
各位,我想问问,怎么实现动态的向listctrl中增加记录啊?
import wx
import sys
class win(wx.Frame):
def __init__(self,parent,id,title):
wx.Frame.__init__(self,parent,id,title,size=(400,500))
panel=wx.Panel(self,-1)
self.task=Tasklist(panel,-1)
self.Show(True)
class Tasklist(wx.ListCtrl):
def __init__(self,parent,id):
wx.ListCtrl.__init__(self,parent,id,size=(400,500),\
style=wx.LC_REPORT
|wx.BORDER_NONE
|wx.LC_SORT_ASCENDING
|wx.LC_VRULES
|wx.LC_HRULES
)
self.SetFont(wx.Font(9,wx.SWISS,wx.NORMAL,wx.BOLD,False,'Verdana'))
self.InsertColumn(0,"flag")
self.InsertColumn(1,"Task")
self.InsertColumn(2,"Remind")
self.InsertColumn(3,"Delete")
self.SetColumnWidth(1,150)
self.setvalues()
def setvalues(self):
import cPickle as cp
try:
f=file("task.dat")
c=cp.load(f)
except (IOError):
c=[{'task':'Write down your task',
'time1':'2005-12-3','time2':'',
'wtime':'09:30'}]
f.close()
print c
n=len(c)
for i in xrange(n):
task=c[i].values()
index=self.InsertStringItem(sys.maxint,task[0])
wx.ListCtrl.SetStringItem(self,index,0,task[0])
wx.ListCtrl.SetStringItem(self,index,1,task[1])
wx.ListCtrl.SetStringItem(self,index,2,task[2])
class window(wx.App):
def OnInit(self):
frame=win(None,-1,"List test")
frame.Raise()
return True
app=window(0)
app.MainLoop()
--
Love Python!_______________________________________________
Python中文技术讨论邮件列表
发言: 发邮件到 python-chinese at lists.python.cn
订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
详细说明: http://python.cn/mailman/listinfo/python-chinese
My webSite: http://www.scweb.cn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051223/a97cc9df/attachment.htm
2005年12月27日 星期二 13:45
在 05-12-23,Lea.Cen<leacen at gmail.com> 写道: > 各位,我想问问,怎么实现动态的向listctrl中增加记录啊? > import wx > import sys > > class win(wx.Frame): > def __init__(self,parent,id,title): > > wx.Frame.__init__(self,parent,id,title,size=(400,500)) > panel=wx.Panel(self,-1) > self.task=Tasklist(panel,-1) > self.Show (True) > > > > class Tasklist(wx.ListCtrl): > def __init__(self,parent,id): > > wx.ListCtrl.__init__(self,parent,id,size=(400,500),\ > style=wx.LC_REPORT > |wx.BORDER_NONE > |wx.LC_SORT_ASCENDING > |wx.LC_VRULES > |wx.LC_HRULES > ) > self.SetFont(wx.Font(9,wx.SWISS ,wx.NORMAL,wx.BOLD,False,'Verdana')) > self.InsertColumn(0,"flag") > self.InsertColumn(1,"Task") > self.InsertColumn(2,"Remind") > self.InsertColumn(3,"Delete") > self.SetColumnWidth(1,150) > self.setvalues() > > def setvalues(self): > import cPickle as cp > try: > f=file("task.dat") > c=cp.load(f) > except (IOError): > c=[{'task':'Write down your task', > 'time1':'2005-12-3','time2':'', > 'wtime':'09:30'}] > f.close() > print c > n=len(c) > for i in xrange(n): > task=c[i].values() > index= self.InsertStringItem(sys.maxint,task[0]) > wx.ListCtrl.SetStringItem(self,index,0,task[0]) > wx.ListCtrl.SetStringItem(self,index,1,task[1]) > wx.ListCtrl.SetStringItem(self,index,2,task[2]) > > > > > class window(wx.App): > def OnInit(self): > frame=win(None,-1,"List test") > frame.Raise() > return True > > app=window(0) > app.MainLoop() > index= self.InsertStringItem(sys.maxint,task[0]) wx.ListCtrl.SetStringItem(self,index,0,task[0]) wx.ListCtrl.SetStringItem(self,index,1,task[1]) wx.ListCtrl.SetStringItem(self,index,2,task[2]) 这就是呀。是不是把sys.maxin改为你指定的位置即可,上述做法的目的是在listctrl的最后添加,相当于append的功能。 -- I like python! My Blog: http://www.donews.net/limodou NewEdit Maillist: http://groups.google.com/group/NewEdit
Zeuux © 2025
京ICP备05028076号