wxPython: Как изменить цвет шрифта в textctrl с помощью флажка?
У меня есть несколько флажков, как это
self.myCB = wx.CheckBox(panel, id=02, label="someString", pos=(20, 25))
за каждым флажком есть TextCtrl
как это
self.myTC = wx.TextCtrl(panel, value=" 0", id=self.myCB.GetId(), pos=(320, 25), size = wx.Size(80, 20))
когда я выбираю флажок И значение моего Textctrl
это "0", цвет шрифта моего Textctrl
должен измениться на красный.
Я попробовал это с if
заявление, но оно ничего не делает
1 ответ
Решение
Возможно, вам придется применить стиль wx.TE_RICH
на ваш TextCtrl, чтобы изменить цвет текста.
Проверено:
import wx
class Main(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
self.text = wx.TextCtrl(self, wx.NewId(), style=wx.TE_RICH)
self.check = wx.CheckBox(self, wx.NewId(), 'Make text red if 0')
self.check.Bind(wx.EVT_CHECKBOX, self.onCheck)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.text, 0)
sizer.Add(self.check, 0)
self.SetSizerAndFit(sizer)
self.Show()
def onCheck(self, evt):
value = self.text.GetValue()
if self.check.IsChecked() and value == '0':
self.text.SetForegroundColour(wx.RED)
else:
self.text.SetForegroundColour(wx.BLACK)
app = wx.App(0)
Main(None, -1, 'Checkbox')
app.MainLoop()