[PyQt] how to append to a document? argghhhhh!

inhahe inhahe at gmail.com
Thu Oct 8 08:47:40 BST 2009


hello, I'm trying to make a couple of functions that add lines to the end of
a QTextEdit window.  one to add html and one to add text.  it's not working
and i can't figure out why or how to get around it.  it doesn't seem to make
any sense.
here's my code.

  def addline(self, text):                                        #for plain
text
    c = QTextCursor(self.output.document())
    c.setPosition(c.End)
    c.insertHtml('<font color="green">')
    c = QTextCursor(self.output.document())
    c.setPosition(c.End)
    stb = self.vs.value() == self.vs.maximum()
    if self.output.toPlainText():
      c.insertText('\n'+text)
    else:
      c.insertText(text)
    if stb:
      self.vs.setValue(self.vs.maximum())
    c = QTextCursor(self.output.document())
    c.setPosition(c.End)
    c.insertHtml('</font>')


  def addlinef(self, html):                            #for html
    c = QTextCursor(self.output.document())
    c.setPosition(c.End)
    stb = self.vs.value() == self.vs.maximum()
    if self.output.toPlainText():
      c.insertHtml("<br/>"+html)
    else:
      c.insertHtml(html)
    if stb:
      self.vs.setValue(self.vs.maximum())

some of the "c = QTextCursor(self.output.document())" and some of the
 "c.setPosition(c.End)" may be redundant; i put them there for defensive
programming to try to get this thing working.

the problems are
1. i can't get the plain text lines to show up green.
2. everything shows up in backward order. it's as if c.setPosition(c.End)
has no effect.

thx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20091008/c5f86084/attachment.html


More information about the PyQt mailing list