Colors 如何从wxPython更改禁用TextCtrl的前景色

Colors 如何从wxPython更改禁用TextCtrl的前景色,colors,wxpython,textctrl,ubuntu,Colors,Wxpython,Textctrl,Ubuntu,如何从wxPython更改禁用的TextCtrl的前景色? 我的意思是,当我用SetForeGroundColor更改颜色时,它只会更改启用状态。例如,当我禁用TextCtrl时,即使我将其设置为红色,它仍保持深灰色。 提前谢谢 import wx class MainFrame(wx.Frame): def __init__(self, *args, **kwargs): super(MainFrame, self).__init__(*args, **kwargs

如何从wxPython更改禁用的TextCtrl的前景色?
我的意思是,当我用SetForeGroundColor更改颜色时,它只会更改启用状态。例如,当我禁用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()

简而言之,你不能这样做。
背景色和前景色被您禁用的事实所覆盖。您的操作系统环境决定了禁用项的外观

当然,这并不意味着你不能回避这个问题。
如果您没有禁用/启用项目,而是设置了真/假标志,则可以在触发事件时检查该标志,并根据标志是真还是假来处理事件。

这允许您处理事件并显示您喜欢的任何颜色。

您是放弃了还是以其他方式破解了它?我放弃了,因为正如您所说,这是不可能的。最后,我在TextCtrl和StaticText之间切换。谢谢谢谢你的回答和推荐!