zoukankan      html  css  js  c++  java
  • wxpython 简单表格控件

    import wx, wx.grid
    
    class GridData(wx.grid.PyGridTableBase):
        _cols = "a b c".split()
        _data = [
            "1 2 3".split(),
            "4 5 6".split(),
            "7 8 9".split()
        ]
        _highlighted = set()
    
        def GetColLabelValue(self, col):
            return self._cols[col]
    
        def GetNumberRows(self):
            return len(self._data)
    
        def GetNumberCols(self):
            return len(self._cols)
    
        def GetValue(self, row, col):
            return self._data[row][col]
    
        def SetValue(self, row, col, val):
            self._data[row][col] = val
    
        def GetAttr(self, row, col, kind):
            attr = wx.grid.GridCellAttr()
            attr.SetBackgroundColour(wx.GREEN if row in self._highlighted else wx.WHITE)
            return attr
    
        def set_value(self, row, col, val):
            self._highlighted.add(row)
            self.SetValue(row, col, val)
    
    class Test(wx.Frame):
        def __init__(self):
            wx.Frame.__init__(self, None)
    
            self.data = GridData()
            self.grid = wx.grid.Grid(self)
            self.grid.SetTable(self.data)
    
            btn = wx.Button(self, label="set a2 to x")
            btn.Bind(wx.EVT_BUTTON, self.OnTest)
    
            self.Sizer = wx.BoxSizer(wx.VERTICAL)
            self.Sizer.Add(self.grid, 1, wx.EXPAND)
            self.Sizer.Add(btn, 0, wx.EXPAND)
    
        def OnTest(self, event):
            self.data.set_value(1, 0, "x")
            self.grid.Refresh()
    
    app = wx.PySimpleApp()
    app.TopWindow = Test()
    app.TopWindow.Show()
    app.MainLoop()
  • 相关阅读:
    联考20200520 T2 函数
    联考20200520 T1 石子游戏
    模拟赛T2 中继系统
    模拟赛T2 仙人掌毒题
    BZOJ3462 DZY Loves Math II
    20200129模拟赛T1 string
    BZOJ1316 树上的询问
    BZOJ4559 成绩比较
    JZOJ4238 纪念碑
    BZOJ 2648 世界树
  • 原文地址:https://www.cnblogs.com/whwywzhj/p/6059220.html
Copyright © 2011-2022 走看看