wx textctrl font style

Pom reply at group.invalid
Mon Apr 2 13:54:39 EDT 2007


kyosohma at gmail.com wrote:
> 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
> 

Thx alot !

I know HTML, so I certainly will skip the richtext.

I did'nt see that fancytext widget, I'll take a look and decide between 
that and the htmlwindow.

I'm making a simple addressbook, which I can't find like I need it (with 
mysql db)


Kindly regards



More information about the Python-list mailing list