如何在wxpython中使用命名颜色?
我通过以下方式在如何在wxpython中使用命名颜色?,python,user-interface,colors,wxpython,Python,User Interface,Colors,Wxpython,我通过以下方式在wx中获得命名颜色: import wx.lib.colourdb as wb wb.getColourList() 虽然“橙色”在wx.lib.colordb中,但我无法将网格单元格的颜色设置为wx.ORANGE,因为它显示: AttributeError: 'module' object has no attribute 'ORANGE' 如何使用wx.lib.colordb.getcolorlist()中定义的颜色 (请确保先启动应用程序) 要将一些颜色加载到wx.Th
wx
中获得命名颜色:
import wx.lib.colourdb as wb
wb.getColourList()
虽然“橙色”在wx.lib.colordb
中,但我无法将网格单元格的颜色设置为wx.ORANGE
,因为它显示:
AttributeError: 'module' object has no attribute 'ORANGE'
如何使用wx.lib.colordb.getcolorlist()
中定义的颜色
(请确保先启动应用程序)
要将一些颜色加载到wx.TheColourDatabase
中,您需要运行
wx.lib.colourdb.updateColourDB() #adds ALOT more named colours to wx.TheColourDatabase
c1 = wx.NamedColour("light coral")
c2 = wx.NamedColour("peachpuff2")
我也正在学习如何使用颜色数据库,在寻找提示和示例的同时,我浏览了这篇文章。现在你知道我不是这方面的专家,但我将分享我迄今为止的发现
dc = wx.PaintDC(self.panel)
for i in range(sector_count):
dc.SetBrush(wx.Brush(self.colors[i]))
DrawNextPieSector(dc)
我发现的另一个解决方案是不洗牌颜色列表,而是将循环索引乘以画笔指定中的常数,如下所示
dc.SetBrush(wx.Brush(self.colors[i * 10]))
上面的语句选择每10种颜色,这意味着第一个扇区将始终为白色,但其他扇区将为各种其他颜色
在我的旧电脑上洗牌列表大约需要2秒钟,但速度很慢。每次应用程序运行时,扇区的颜色都与上次运行时不同。这可能是可取的,也可能不是,这取决于应用程序应该做什么
我希望每次应用程序运行时扇区都是相同的颜色,因为最终用户希望将特定的颜色与特定的数据集相关联。因此,我使用第二种方法。它的速度更快,但如果索引倍增为10(如上例所示),它将应用程序限制为63种颜色。我想我可以稍微修改一下循环,每第6次迭代或类似的事情更改一次乘法器,但63种颜色对我来说就足够了。谢谢,但有些颜色不起作用,例如“PEACHPUFF2”、“LIGHTCORAL”。它们是白色的。有什么问题吗?谢谢你,先生。虽然更新colordb以添加更多颜色似乎很愚蠢。为什么这些颜色不是默认添加的?我想它们只是默认添加了最常见的颜色
dc = wx.PaintDC(self.panel)
for i in range(sector_count):
dc.SetBrush(wx.Brush(self.colors[i]))
DrawNextPieSector(dc)
dc.SetBrush(wx.Brush(self.colors[i * 10]))