如何从 wxPython 更改禁用的 TextCtrl 的 ForegroundColour

How to change ForegroundColour of a disabled TextCtrl from wxPython

如何从 wxPython 更改禁用的 TextCtrl 的前景色?
我的意思是,当我使用 SetForegroundColour 更改颜色时,它只会针对启用状态进行更改。例如,当我禁用 TextCtrl 时,即使我将其设置为红色,它仍保持深灰色。
提前致谢!

import wx

class MainFrame(wx.Frame):

    def __init__(self, *args, **kwargs):
        super(MainFrame, self).__init__(*args, **kwargs)
        self.InitUI()
        self.Fit()
        self.Show(True)              

    def InitUI(self):
        text = wx.TextCtrl(self)
        text.SetForegroundColour((255,0,0))
        text.SetValue('Example')
        text.Enable(False)

def main():
    app = wx.App()
    MainFrame(None)
    app.MainLoop()

if __name__ == '__main__':
    main()

简短的回答是你不能。
背景色和前景色被您禁用它们的事实所覆盖。您的操作系统环境决定了禁用项目的外观。

当然,这并不意味着您无法解决这个问题。
如果您设置了 True/False 标志而不是 disabling/enabling 项目,则您可以在触发事件时检查该标志,并根据标志是 True 还是 False,您是否处理该事件.
这允许您处理事件并显示您喜欢的任何颜色。