2011-12-21 22 views
3

私は、チェックボックスを選択して、私のTextctrlの値が「0」のフォントの色であるときTextCtrl wxPython:チェックボックスでtextctrlのフォントの色を変更するにはどうすればいいですか?

このような
self.myTC = wx.TextCtrl(panel, value=" 0", id=self.myCB.GetId(), pos=(320, 25), size = wx.Size(80, 20)) 

がありますすべてのチェックボックスの背後にあるこの

self.myCB = wx.CheckBox(panel, id=02, label="someString", pos=(20, 25)) 

のようないくつかのチェックボックスを持っています私のTextctrlは赤に変わるはずです。

私はif -statementでそれを試してみましたが、それはあなたがテキストの色を変更するには、あなたのTextCtrlにスタイルwx.TE_RICHを適用する必要があり何も

答えて

4

を行いません。テスト済み

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

はどうもありがとうございました! – user1106770

関連する問題