2015-08-09 49 views
2

如何更改wxPython禁用的TextCtrl的foregroundcolor?
我的意思是,当我用SetForegroundColour更改颜色时,它只会改变启用状态。例如,当我禁用TextCtrl时,即使将它设置为红色,它仍为深灰色。
在此先感谢!如何从wxPython更改禁用的TextCtrl的ForegroundColor

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() 
+0

你放弃了还是另辟蹊径? –

+0

我放弃了,因为如你所说,这是不可能的。我终于在TextCtrl和StaticText之间切换。谢谢! – dhiga

回答

1

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

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

+0

感谢您的回答和建议! – dhiga

相关问题