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