如何从 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,您是否处理该事件.
这允许您处理事件并显示您喜欢的任何颜色。
如何从 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,您是否处理该事件.
这允许您处理事件并显示您喜欢的任何颜色。