[PyKDE] Inserting Rich Text in a QTextEdit
    Michael Sparks 
    zathras at thwackety.com
       
    Mon Dec 20 04:24:01 GMT 2004
    
    
  
Hi,
I've been using a QTextEdit for a while as a simple rich text editor, and
recently been playing with various ideas and have hit a bit of a block.
Essentially what I want to do is this:
   editor.insert("<a href='"+str(page)+"'>"+str(page)+"</a>"  )
And have that rendered _and stored in the text_(*) as a hyperlink - ie the
above line results in (with defaults) "page" being rendered underlined in
blue.
   (*) Hence a stylesheet isn't an option here :-(
Instead however what I see in the editor is this:
  <a href='Somepage'>Somepage</a>
(Which gets saved as <a href ... etc )
However, if I use this:
   editor.append("<a href='"+str(page)+"'>"+str(page)+"</a>"  )
This is correctly interpreted as being a hyperlink, and saved as a
hyperlink.
The question I have really is this - is there any way round this, short of
building up this behaviour from scratch doing something like:
(pseudocode)
   if hasSelectedText
      t = selectedText
      removeSelectedText
      p = getCursorPosition
      setCursorPosition(end of text)
      q = getCursorPosition
      append("thing I want")
      r= setCursorPosition(end of text)
      setSelection(between q and r)
      cut
      setCursorPosition(p)
      paste
?
It seems like a lot of faff ? (obviously I'd wrap that up in a function,
probably called something like insertRichText(), but even so... (I'd be
happy with a "replace selection" option instead, but I can't see that -
hopefully I'm being blind :) )
Failing that, if I really have missed something and there's a much simpler
way of doing this I'd really appreciate a pointer, slap round the head :)
Thanks for any responses,
Michael.
    
    
More information about the PyQt
mailing list