import wx
from wx import dataview


class _Model(dataview.PyDataViewIndexListModel):
    def GetColumnCount(self):
        return 2

    def GetColumnType(self, col):
        if col == 1:
            return "string"
        if col == 2:
            return "wxBitmap"

    def GetValueByRow(self, row, col):
        if col == 1:
            return str(row).zfill(3)
        if col == 2:
            return wx.EmptyBitmapRGBA(64, 64, row, row, row, 255)


class TestFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None)

        self._data = _Model(200)
        self.items = dataview.DataViewCtrl(self)
        self.items.AssociateModel(self._data)
        self.items.AppendTextColumn("Text", 1)
        self.items.AppendBitmapColumn("Bitmap", 2)


app = wx.PySimpleApp()
app.TopWindow = TestFrame()
app.TopWindow.Show()
app.MainLoop()
