如何在wxGrid标题单元格中显示位图?

如何在wxGrid标题单元格中显示位图?,grid,wxpython,Grid,Wxpython,使用wxPython,我只想在wxGrid的左上角网格单元格中渲染位图,但不知道如何执行此操作 我得到左上网格角单元格的Window对象 mywindow = self.someGrid.GetGridCornerLabelWindow() 但现在我无法为这些窗口对象设置位图。有人能帮我吗?您需要创建一个GridLabelRenderer。wxPython演示中有一个示例包含以下代码: class MyCornerLabelRenderer(glr.GridLabelRenderer):

使用wxPython,我只想在
wxGrid
的左上角网格单元格中渲染位图,但不知道如何执行此操作

我得到左上网格角单元格的Window对象

mywindow = self.someGrid.GetGridCornerLabelWindow()

但现在我无法为这些窗口对象设置位图。有人能帮我吗?

您需要创建一个GridLabelRendererwxPython演示中有一个示例包含以下代码:

class MyCornerLabelRenderer(glr.GridLabelRenderer):
    def __init__(self):
        import images
        self._bmp = images.Smiles.getBitmap()

    def Draw(self, grid, dc, rect, rc):
        x = rect.left + (rect.width - self._bmp.GetWidth()) / 2
        y = rect.top + (rect.height - self._bmp.GetHeight()) / 2
        dc.DrawBitmap(self._bmp, x, y, True)
要使用此渲染器,必须执行以下操作:

g = MyGrid(self, size=(100,100))
g.SetColLabelRenderer(0, MyCornerLabelRenderer())

这将把图像放到第一列。

非常感谢您的回答。这将是可行的,但我认为只有在Python3.x版本下才可行(通过阅读示例)。但对于这个项目,我必须使用Python2.5…根据,GridLabelRenderer是在Wxpython2.9.0.1中添加的。这里似乎有一个支持Python2.5的2.9版本:感谢您的帮助,问题是:这个项目针对的是一个所有人都从一个管理层获得软件的公司,所以要向所有PC机推出更新版本的wxpython并非易事。我正在使用wx版本2.8…:(你应该看看GridLabelRenderer是如何实现的。也许你可以用它来实现你自己的。我怀疑你需要使用设备上下文来在某个位置绘制,但我真的不知道。