wxpython:如何使用给定的 rgb 颜色填充 listctrl 对象中的复选框内部?
我有这个图表。在这张图表中,我有很多国家/地区。我试图通过更改非功能复选框的颜色来在 listctrl 对象内创建图例。
有没有wxpython函数可以改变这样的属性?
谢谢
I have this chart. In this chart I have a bunch of countries. I am trying to create the legends inside a listctrl object by changing the color of a non-functional checkbox.
Is there any wxpython function to change such attribute?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不认为 CheckBox 能解决这个问题。更改背景颜色将在不同平台上产生不同的效果,并且我不确定其中任何一个仅更改小部件的框部分。 ListCtrl 的功能也相当有限。
如果没有内置的东西可以完成这项工作,您可以使用 ScrolledPanel 和 StaticText 尝试类似的操作:
I don't think CheckBox will work for that. Changing the background color will have a different effect on different platforms, and I'm not sure any of them change only the box part of the widget. ListCtrl is also pretty limited.
If there's nothing built-in to do the job, you could try something like this using ScrolledPanel and StaticText:
看一下 wx 演示中的 wxRendererNative(),您应该能够在 OnPaint 事件中使用 DC,并用您选择的一个替换渲染图像,在本例中是不同颜色的复选框。您需要自己制作图像,或者找到一种方法来用您选择的颜色掩盖默认图像(我自己从未尝试过),但这应该是可行的。
您还可以查看:http://wiki.wxpython.org/CreatingCustomControls 获取自定义示例复选框控件。我不确定这将如何应用于列表中。但它可能会让您了解需要做什么来完成自定义复选框。
Take a look at wxRendererNative() in the wx demo, you should be able to use a DC in an OnPaint event and repalce the rendered images with one of your choice, in this case a different coloured checkbox. You would need to make the images yourself or figure out a way to mask the default ones with the colour of your choice (never tried this myself), but it should be doable one way or another.
you can also check out: http://wiki.wxpython.org/CreatingCustomControls for an example of a custom checkbox control. how this will apply within a list, I am not sure. but it might give you an idea of what needs to be done to accomplish a custom checkbox.