[Interest] How to create a list.

Konstantin Tokarev annulen at yandex.ru
Wed Jan 13 11:33:25 CET 2016



13.01.2016, 04:10, "william.crocker at analog.com" <william.crocker at analog.com>:
> On 01/12/2016 07:37 PM, Elvis Stansvik wrote:
>>  2016-01-12 15:37 GMT+01:00 Bill Crocker<william.crocker at analog.com>:
>>>  Hello:
>>>
>>>  Could someone please show me the few lines of code required
>>>  to add a list *of three elements* to a QTextDocument using low
>>>  level (i.e QTextBlock, QTextCursor, QTextList, etc.) classes.
>>
>>  This would be one way:
>
> That is all good stuff.
>
> I had solved my problem and was going to fess up in the next few hours.
> The part I needed was that little itsy-bitsy, under documented function
> named add() which is hidden in plain sight at the top of the QTextList
> documentation.
>
> In my own defense, it is not used in qtexthtmlparser.cpp or qtextedit.cpp
> which were the fist two stops (Qt 4.8.6) I made looking for answers.
>
> Also, the documentation (Qt 4.8.6) does not appear to show you how to add the
> second item to a list which is not at all like adding the first.
>
> My application is also a little different. I am parsing my own XML representation
> of a document, and so would not parse the text and then make a second pass
> to apply the structure. But I am good now that I know the add() trick.

Hi Bill,

You may want to use DOM parser to make things more convenient. If you don't want to use QDom (there a many reasons not to use it), you cat try great PugiXML parser:

http://pugixml.org/

>
> Thanks.
>
> Bill
>
>>  #include<QApplication>
>>  #include<QTextBlock>
>>  #include<QTextCursor>
>>  #include<QTextDocument>
>>  #include<QTextEdit>
>>  #include<QTextList>
>>  #include<QTextListFormat>
>>
>>  int main(int argc, char *argv[]) {
>>       QApplication app(argc, argv);
>>
>>       QTextEdit edit;
>>       QTextDocument *doc = edit.document();
>>
>>       // Insert text.
>>       QTextCursor cursor(doc);
>>       cursor.insertText("A list of three items:\n");
>>       cursor.insertText("One\n");
>>       cursor.insertText("Two\n");
>>       cursor.insertText("Three");
>>
>>       // Position cursor on "One".
>>       cursor.movePosition(QTextCursor::Start);
>>       cursor.movePosition(QTextCursor::NextBlock);
>>
>>       // Insert list.
>>       QTextListFormat listFormat;
>>       listFormat.setStyle(QTextListFormat::ListDisc);
>>       QTextList *list = cursor.insertList(listFormat);
>>
>>       // Add "Two".
>>       cursor.movePosition(QTextCursor::NextBlock);
>>       list->add(cursor.block());
>>
>>       // Add "Three".
>>       cursor.movePosition(QTextCursor::NextBlock);
>>       list->add(cursor.block());
>>
>>       edit.show();
>>
>>       return app.exec();
>>  }
>>
>>  Regards,
>>  Elvis
>>
>>>  Thanks.
>>>
>>>  --
>>>  Bill
>>>  _______________________________________________
>>>  Interest mailing list
>>>  Interest at qt-project.org
>>>  http://lists.qt-project.org/mailman/listinfo/interest
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest

-- 
Regards,
Konstantin



More information about the Interest mailing list