Один простой способ - задать для Font
требуемые атрибуты, а затем сбросить их при возврате текста «Подсказки».
т.е.
import wx
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Test TextCtrl')
self.panel = wx.Panel(self)
self.text1 = wx.TextCtrl(self.panel,value="Normal Text",pos=(10,10),size=(350,30))
self.text2 = wx.TextCtrl(self.panel,value="Italic greyed hint text",pos=(10,40),size=(350,30))
font = wx.Font(10, wx.DEFAULT, wx.FONTSTYLE_ITALIC, wx.NORMAL)
self.text2.SetFont(font)
self.text2.SetForegroundColour('#848484')
self.text2.Bind(wx.EVT_TEXT, self.On_Text_Active)
self.Show()
def On_Text_Active(self, event):
if self.text2.GetForegroundColour() == '#848484':
font = wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL)
self.text2.SetFont(font)
self.text2.SetForegroundColour(wx.BLACK)
self.text2.SetValue('')
if __name__ == '__main__':
app = wx.App()
frame = MainFrame()
app.MainLoop()