On Apr 20, 8:38 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > I'm running Python2.5 with wxPython v2.8.3.0 under WinXP and I cannot > get the SetDefaultStyle method to work. > > I'm trying: > > self.output.SetDefaultStyle(wx.TextAttr(wx.RED)) > self.output.AppendText(text) > self.output.SetDefaultStyle(wx.TextAttr()) > > where "self.output" is a TextCtrl window. The text appears, but it's > always black. If I print the output of > self.output.GetDefaultStyle().GetTextColour() before resetting it back > to default, I see "(255, 0, 0, 255)". After reset, it's "(-1, -1, -1, > 255)". > > The font in that window is the system default. > > Am I doing something wrong? > > -- Brian
You didn't show the code that creates the TextCtrl. Is it something like this: self.output = wx.TextCtrl(myFrame, -1, style=wx.TE_MULTILINE | wx.TE_RICH2) On my platform, styling the text doesn't work for single line TextCtrl's(which seems kind of stupid), and on Windows I think you are required to specify wx.TE_RICH2 to style the text. This following code colors the entered text red for me: -------- import wx myApp = wx.App(False) myFrame = wx.Frame(None, -1, title="Test") panel = wx.Panel(myFrame, -1) my_tc = wx.TextCtrl(myFrame, -1, style=wx.TE_MULTILINE | wx.TE_RICH2) my_tc.SetDefaultStyle(wx.TextAttr("red") ) #wx.RED works too myFrame.Show() myApp.MainLoop() -------- -- http://mail.python.org/mailman/listinfo/python-list