【问题标题】:Can one set the text colour for a wxMenuItem in Python?可以在 Python 中为 wxMenuItem 设置文本颜色吗?
【发布时间】:2012-11-20 20:23:24
【问题描述】:

查看wxWidgets documentation,我发现应该只能在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

【问题讨论】:

    标签: python windows wxpython wxwidgets


    【解决方案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。没有注意到缩进的问题,不过也可能跟版本有关。

    【讨论】:

    • 太棒了!也为我工作。只是按错误的顺序做事/做事过于紧凑
    猜你喜欢
    • 1970-01-01
    • 2020-07-23
    • 2021-10-26
    • 2021-05-27
    • 2011-03-14
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多