wx textctrl font style

kyosohma at gmail.com kyosohma at gmail.com
Mon Apr 2 11:48:49 EDT 2007


On Mar 31, 3:13 am, Pom <r... at group.invalid> wrote:
> Hello
>
> I have a tuple of strings which I must show in a textctrl, each item in
> the tuple representing one line of text.
>
> The first three lines of text should each have another style (fontsize
> and color)
>
> i'm using this code to achieve this:
>    tmppos = self.txtInfo.GetInsertionPoint() # get the cursor pos
>    self.txtInfo.write(str(csr[0])+'\n')
>    tmppos2 = self.txtInfo.GetInsertionPoint() # get the new cursor pos
>    self.txtInfo.SetStyle(tmppos, tmppos2, wx.TextAttr("BLUE",
> wx.NullColour, tmpnewfont))
>    self.txtInfo.write(str(csr[1])+'\n')
>    tmppos3 = self.txtInfo.GetInsertionPoint() # get the new cursor pos
>    self.txtInfo.SetStyle(tmppos2, tmppos3, wx.TextAttr("BLUE",
> wx.NullColour, tmpnewfont2))
>    self.txtInfo.write(str(csr[2])+'\n')
>    tmppos4 = self.txtInfo.GetInsertionPoint() # get the new cursor pos
>    self.txtInfo.SetStyle(tmppos3, tmppos4, wx.TextAttr(wx.Nullcolour,
> wx.NullColour, tmpnewfont3))
>
> Now, I was wondering if this is the right way of doing this, because I
> have the feeling this code sucks.
>
> Anybody has a better way of doing this?
>
> Thx !!!

You could experiment with the "Rich Text" style of the text control
(see the wxPython Demo). You might also mess with refactoring your
code a little and doing a FOR loop.

# untested code!!!
fonts = [tmpnewfont, tmpnewfont2, tmpnewfont3]
count = 0
tmppos = self.txtInfo.GetInsertionPoint()
self.txtInfo.write(str(csr[count])+'\n')
for i in range(3):
    tmppos2 = self.txtInfo.GetInsertionPoint()
    self.txtInfo.SetStyle(tmppos, tmppos2, wx.TextAttr("BLUE",
wx.NullColour, fonts[count]))
    tmppos = tmppos2
    count += 1
    self.txtInfo.write(str(csr[count])+'\n')


I also noticed a FancyText widget. I've used the HtmlWindow widget for
an About screen before and I thought it was pretty cool if you know
HTML. You might also try dropping an email to the wxPython Users Group
at http://wxpython.org/maillist.php

Hope this helps!

Mike




More information about the Python-list mailing list