wxPython中list的简单使用

来源:互联网 发布:约瑟夫环 c语言链表 编辑:程序博客网 时间:2024/06/03 06:31
#!/usr/bin/python
#-*- coding:utf8 -*-

import wx
import sys
import wx.lib.mixins.listctrl as listmix

value = {
    1:('1', 'staticText', u"静态文本框控件"),
    2:('2', 'button', u"按钮控件"),
    3:('3', 'textCtrl', u"文本框控件"),
    4:('4', 'timer', u"时间控件")
}


class ListShow(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin):
    def __init__(self, root, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0):
        wx.ListCtrl.__init__(self, root, id, pos, size, style)
        listmix.ListCtrlAutoWidthMixin.__init__(self)
        self.setColumns()
        
    def setColumns(self):
        self.InsertColumn(0, u"第一列")
        self.InsertColumn(1, u"第二列")
        self.InsertColumn(2, u"第三列")
        items = value.items()

        for key, values in items:
            index = self.InsertStringItem(sys.maxint, values[0]) #找到下表
            for i in range(len(values)):
                self.SetStringItem(index, i, values[i])
        self.SetColumnWidth(0, 100)
        self.SetColumnWidth(1, 100)
        self.SetColumnWidth(2, wx.LIST_AUTOSIZE)


class ListFrame(wx.Frame):
    def __init__(self, root):
        wx.Frame.__init__(self, root, title=u"列表控件", size=(400,400))
        sizer = wx.BoxSizer(wx.VERTICAL)
        self.listtest = ListShow(self, -1, style=wx.LC_REPORT|wx.LC_SORT_ASCENDING) #报表形式
        sizer.Add(self.listtest, 1, wx.EXPAND)
        self.SetSizer(sizer)

class MyApp(wx.App):
    def OnInit(self):
        self.frame = ListFrame(None)
        self.frame.Show()
        return True

app = MyApp()
app.MainLoop()


一个简单的list使用示例


现在有一个加图片的示例

#!/usr/bin/python
#-*- coding:utf8 -*-

import wx
import sys, glob

class ImageList(wx.Frame):
    def __init__(self, root):
        wx.Frame.__init__(self, root, -1, u"位图列表", size=(400,400))
        imageList = wx.ImageList(16, 16, True)
        data = {0: "prior", 1: "next", 2: "house", 3: "save", 4: "setting"}
        for name in glob.glob("icon?.png"):
            bmp = wx.Bitmap(name, wx.BITMAP_TYPE_PNG)
            imageList.Add(bmp)
        self.listtest = wx.ListCtrl(self, -1, style=wx.LC_ICON|wx.LC_AUTOARRANGE)
        self.listtest.AssignImageList(imageList, wx.IMAGE_LIST_NORMAL)
        for i in range(5):
            self.listtest.InsertImageStringItem(i, data[i], i)

class MyApp(wx.App):
    def OnInit(self):
        self.frame = ImageList(None)
        self.frame.Show()
        return True


app = MyApp()
app.MainLoop()

0 0