grid_renderer.py
来自「wxPython的基本示例程序」· Python 代码 · 共 60 行
PY
60 行
import wximport wx.gridimport randomclass RandomBackgroundRenderer(wx.grid.PyGridCellRenderer): def __init__(self): wx.grid.PyGridCellRenderer.__init__(self) def Draw(self, grid, attr, dc, rect, row, col, isSelected): text = grid.GetCellValue(row, col) hAlign, vAlign = attr.GetAlignment() dc.SetFont( attr.GetFont() ) if isSelected: bg = grid.GetSelectionBackground() fg = grid.GetSelectionForeground() else: bg = random.choice(["pink", "sky blue", "cyan", "yellow", "plum"]) fg = attr.GetTextColour() dc.SetTextBackground(bg) dc.SetTextForeground(fg) dc.SetBrush(wx.Brush(bg, wx.SOLID)) dc.SetPen(wx.TRANSPARENT_PEN) dc.DrawRectangleRect(rect) grid.DrawTextRectangle(dc, text, rect, hAlign, vAlign) def GetBestSize(self, grid, attr, dc, row, col): text = grid.GetCellValue(row, col) dc.SetFont(attr.GetFont()) w, h = dc.GetTextExtent(text) return wx.Size(w, h) def Clone(self): return RandomBackgroundRenderer()class TestFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title="Grid Renderer", size=(640,480)) grid = wx.grid.Grid(self) grid.CreateGrid(50,50) # Set this custom renderer just for row 4 attr = wx.grid.GridCellAttr() attr.SetRenderer(RandomBackgroundRenderer()) grid.SetRowAttr(4, attr) for row in range(10): for col in range(10): grid.SetCellValue(row, col, "cell (%d,%d)" % (row, col))app = wx.PySimpleApp()frame = TestFrame()frame.Show()app.MainLoop()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?