wx textctrl font style

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Pom

    #1

    wx textctrl font style

    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.Ge tInsertionPoint () # get the cursor pos
    self.txtInfo.wr ite(str(csr[0])+'\n')
    tmppos2 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
    self.txtInfo.Se tStyle(tmppos, tmppos2, wx.TextAttr("BL UE",
    wx.NullColour, tmpnewfont))
    self.txtInfo.wr ite(str(csr[1])+'\n')
    tmppos3 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
    self.txtInfo.Se tStyle(tmppos2, tmppos3, wx.TextAttr("BL UE",
    wx.NullColour, tmpnewfont2))
    self.txtInfo.wr ite(str(csr[2])+'\n')
    tmppos4 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
    self.txtInfo.Se tStyle(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 !!!
  • kyosohma@gmail.com

    #2
    Re: wx textctrl font style

    On Mar 31, 3:13 am, Pom <r...@group.inv alidwrote:
    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.Ge tInsertionPoint () # get the cursor pos
    self.txtInfo.wr ite(str(csr[0])+'\n')
    tmppos2 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
    self.txtInfo.Se tStyle(tmppos, tmppos2, wx.TextAttr("BL UE",
    wx.NullColour, tmpnewfont))
    self.txtInfo.wr ite(str(csr[1])+'\n')
    tmppos3 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
    self.txtInfo.Se tStyle(tmppos2, tmppos3, wx.TextAttr("BL UE",
    wx.NullColour, tmpnewfont2))
    self.txtInfo.wr ite(str(csr[2])+'\n')
    tmppos4 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
    self.txtInfo.Se tStyle(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.Ge tInsertionPoint ()
    self.txtInfo.wr ite(str(csr[count])+'\n')
    for i in range(3):
    tmppos2 = self.txtInfo.Ge tInsertionPoint ()
    self.txtInfo.Se tStyle(tmppos, tmppos2, wx.TextAttr("BL UE",
    wx.NullColour, fonts[count]))
    tmppos = tmppos2
    count += 1
    self.txtInfo.wr ite(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

    Comment

    • Pom

      #3
      Re: wx textctrl font style

      kyosohma@gmail. com wrote:
      On Mar 31, 3:13 am, Pom <r...@group.inv alidwrote:
      >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.Ge tInsertionPoint () # get the cursor pos
      > self.txtInfo.wr ite(str(csr[0])+'\n')
      > tmppos2 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
      > self.txtInfo.Se tStyle(tmppos, tmppos2, wx.TextAttr("BL UE",
      >wx.NullColou r, tmpnewfont))
      > self.txtInfo.wr ite(str(csr[1])+'\n')
      > tmppos3 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
      > self.txtInfo.Se tStyle(tmppos2, tmppos3, wx.TextAttr("BL UE",
      >wx.NullColou r, tmpnewfont2))
      > self.txtInfo.wr ite(str(csr[2])+'\n')
      > tmppos4 = self.txtInfo.Ge tInsertionPoint () # get the new cursor pos
      > self.txtInfo.Se tStyle(tmppos3, tmppos4, wx.TextAttr(wx. Nullcolour,
      >wx.NullColou r, 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.Ge tInsertionPoint ()
      self.txtInfo.wr ite(str(csr[count])+'\n')
      for i in range(3):
      tmppos2 = self.txtInfo.Ge tInsertionPoint ()
      self.txtInfo.Se tStyle(tmppos, tmppos2, wx.TextAttr("BL UE",
      wx.NullColour, fonts[count]))
      tmppos = tmppos2
      count += 1
      self.txtInfo.wr ite(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

      Comment

      Working...