0

查看wxWidgets 文档,我发现应该只能在 Windows 中为 wxMenuItem 对象设置文本颜色。我正在使用Windows,很好。

在 wxPython 中编码并尝试完成此操作时,我不仅没有更改菜单项的文本颜色,而且我注意到同一菜单中此菜单项之后的菜单项缩进了 1 个字符。确实很奇怪。如果我删除设置文本颜色的指令,两个菜单项会按预期排列。

所以这是我的代码。我在我的代码中看不到任何错误,但也许有一些错误,因为我确信缩进是一个迹象。

menu = wx.Menu()
colour = (255,0,0) # like the text to be red
m_cluster = menu.Append(-1, "&Cluster\tAlt-C", "Cluster Options.")
m_cluster.SetTextColour(colour) # remembered to spell color with u
self.Bind(wx.EVT_MENU, self.OpenClusterDialog, m_cluster)
m_data = menu.Append(-1, "Data Source", "Set Data Source Information")
self.Bind(ex.EVT_MENU, self.OpenDataSourceDialog, m_data)
menuBar.Append(menu, "&Options") # menu bar previously defined

wxversion.py报告我已2.8-msv-unicode安装

4

1 回答 1

1

我玩过您的代码,并注意到仅当菜单项尚未附加到菜单时才会应用颜色。因此menu.Append(...),您需要:

m_cluster = wx.MenuItem(menu, -1, "&Cluster\tAlt-C", "Cluster Options.")
m_cluster.SetTextColour(colour)
menu.AppendItem(m_cluster)

我在 wx 2.9 所以 YMMV。我没有注意到缩进问题,但这也可能与版本有关。

红色菜单项

于 2012-11-21T08:10:36.783 回答