[PyQt] Howto use the Qt documentation successfully - Was: Re: Access to lines of text on textEdit.
steve at borho.org
Tue Sep 14 16:51:28 BST 2010
On Tue, Sep 14, 2010 at 4:08 AM, Hans-Peter Jansen <hpj at urpla.net> wrote:
> On Tuesday 14 September 2010, 09:48:47 Algis Kabaila wrote:
>> > On Tuesday 14 September 2010, 01:54:01 Algis Kabaila wrote:
>> > > Is it possible to access lines of text in a textEdit? If so how can
>> > > I find information about it?
>> On Tuesday 14 September 2010 10:09:10 Hans-Peter Jansen wrote:
>> > Depending on document type, try this:
>> > document().findBlockByLineNumber(lineNumber).text()
>> > Pete
>> On Tuesday 14 September 2010 12:24:52 Henning Schröder wrote:
>> > If you enter findBlockByLineNumber in Qt Assistant you will see that
>> > this method belongs to a QTextDocument object and returns a
>> > QTextBlock object QTextEdit has a method called "document()" which
>> > returns a QTextDocument.
>> > Henning
>> In summary, the i-th line is returned by the following
>> line = self.textEdit.document().findBlockByLineNumber(i).text(),
>> which at least in part is identical to what Hans-Peter told me to do.
>> Hennings advice to look up Qt Assistant was an invaluable help. Thank
>> you both.
> Al, I cannot imagine how to work with PyQt successfully _without_ using
> assistant. Of course, Qt's class hierarchy is quite senseful most of the
> time in the first place, but due to the sheer volume of it, nobody is able
> to memorize this all.
> Just a few words on methology:
> Searching for some functionality of QTextEdit, e.g. how to get at a specific
> line via line number:
> * Look up QTextEdit in assistant
> We read: The QTextEdit class provides a widget that is used to edit and
> display both plain and rich text.
> * Click on more...
> We read: QTextEdit works on paragraphs and characters. A paragraph is a
> formatted string which is word-wrapped to fit into the width of the
> widget. By default when reading plain text, one newline signifies a
> Sounds like we're looking for paragraphs in plain text mode
> * Check class methods, that do what we want:
> Nothing obvious stands out
> * Check base classes:
> QTextEdit inherits from QAbstractScrollArea only, that won't help us
> much here
> * Check methods again:
> Nothing obvious with paragraphs, but QTextDocument * document() might be
> * Click on document() method:
> We read: Returns a pointer to the underlying document.
> * Check it out: click on QTextDocument
> We read: The QTextDocument class holds formatted text that can be viewed
> and edited using a QTextEdit
> We're getting nearer, but still no ball: check out class methods
> * It has a method: QTextBlock findBlockByLineNumber ( int lineNumber )
> Sounds like the best fit: click on method
> * We read: Returns the text block that contains the specified lineNumber.
> What the hell is a QTextBlock? Click:
> It encapsulates text fragments, and provides access to them
> * Check methods: QString text() sounds, like what we are looking for
> We read: Returns the block's contents as plain text.
> Target reached.
> Note, how this transforms to a single line of code. Isn't it impressive, how
> much power is at our finger tips and how much joy it can be to ignore all
> this superfluous C++ decoration, that would involve much more work to get
> right ;-)
How does one get the documentation files to make assistant useful on Windows?
More information about the PyQt