是否可以更改wx.ListBox中项目的背景颜色?

时间:2013-01-09 16:53:34

标签: python wxpython

我想在列表框中替换背景颜色,以便更容易阅读。像这样:

enter image description here

然而,我无法弄清楚如何做到这一点。从文档中,我看到wx.listbox有一个名为SetItemBackgroundColor(self, item, colour)的方法,但我不确定(a)item参数是某种索引还是wx.ID,或者(b)如果该方法实际适用于listbox(可能是继承树中更高的东西?)

我已尝试传入索引,并为方法添加颜色,但它没有做任何事情。所以我不确定它是否不起作用,因为我传入了错误类型的标识符,或者它不起作用,因为该方法不适用于该对象。

如果我应该传递给item参数的wx.ID,那么如何获取listbox实例的这些信息呢?

1 个答案:

答案 0 :(得分:3)

使用ListBox无法设置背景颜色。 ListCtrl可以做到这一点。

一般来说,ListBox适用于小型简单列表(因此快速而简单),ListCtrl提供了更大的灵活性(但也涉及更多)。

有关如何制作条纹背景的示例,请参阅CoreWindows\ListCtrl_virtual下的演示。

更新关于wx docs(没有SetItemBackgroundColor方法)和wxpython docs(确实如此)之间的区别:
看来当可以使用本机API时,当它支持wx库之外的某些功能时,有时会将其访问添加到包装器中。也就是说,SetItemBackgroundColor的使用取决于平台,基于本机API。有关讨论,请参阅this thread(特别是Robin Dunn的参赛作品)。当它在本机平台中不可用时,the command is ignored