wxpython图表(一)

说明:GenericTable为一个基类,通过继承这个基类,然后就可以实现图表的功能


import wx
import wx.grid

# 基类
class GenericTable(wx.grid.PyGridTableBase):

    def __init__(self, data, rowLabels=None, colLabels=None):
        wx.grid.PyGridTableBase.__init__(self)
        self.data = data
        self.rowLabels = rowLabels
        self.colLabels = colLabels

    def GetNumberRows(self):
        return len(self.data)

    def GetNumberCols(self):
        return len(self.data[0])

    def GetColLabelValue(self, col):
        if self.colLabels:
            return self.colLabels[col]

    def GetRowLabelValue(self, row):
        if self.rowLabels:
            return self.rowLabels[row]

    def IsEmptyCell(self, row, col):
        return False

    def GetValue(self, row, col):
        return self.data[row][col]

    def SetValue(self, row, col, value):
        pass


# 示例
data = (("Bob", "Dernier"), ("Ryne", "Sandberg"),("Gary", "Matthews"),
        ("Leon", "Durham"),("Keith", "Moreland"), ("Ron", "Cey"),("Jody", "Davis"),
        ("Larry", "Bowa"),("Rick", "Sutcliffe"))

colLabels = ("Last", "First")
rowLabels = ("CF", "2B", "LF", "1B", "RF", "3B", "C", "SS", "P")

class SimpleGrid(wx.grid.Grid):

    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent, -1)
        tableBase = GenericTable(data, rowLabels,colLabels)
        self.SetTable(tableBase,True)

class TestFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, "AGrid", size=(275, 275))
        SimpleGrid(self)

if __name__ == '__main__':
    app = wx.App()
    frame = TestFrame(None)
    frame.Show(True)
    app.MainLoop()

猜你喜欢

转载自blog.csdn.net/qq_43534980/article/details/115058574
今日推荐