【问题标题】:wxPython: How to change the font color in textctrl with a checkbox?wxPython:如何使用复选框更改 textctrl 中的字体颜色?
【发布时间】:2012-01-25 04:11:12
【问题描述】:

我有一些这样的复选框

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-statement 尝试过,但它什么也没做

【问题讨论】:

    标签: colors checkbox if-statement wxpython textctrl


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 2018-03-01
      • 2013-08-28
      • 2015-09-03
      • 2011-08-16
      • 2011-01-06
      • 1970-01-01
      • 2019-06-03
      • 2011-08-16
      • 2022-01-24
      相关资源
      最近更新 更多