Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Colors wxPython:如何使用复选框更改textctrl中的字体颜色?_Colors_Checkbox_If Statement_Wxpython_Textctrl - Fatal编程技术网

Colors wxPython:如何使用复选框更改textctrl中的字体颜色?

Colors wxPython:如何使用复选框更改textctrl中的字体颜色?,colors,checkbox,if-statement,wxpython,textctrl,Colors,Checkbox,If Statement,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”时,我的Textc

我有一些这样的复选框

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
-语句尝试了它,但它没有任何作用您可能需要将样式
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()