Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Setting user data in an existing QTextBlock
Wolosocu last edited by Wolosocu
I am writing an editor in which I want to store some meta data with certain blocks of text, and
QTextBlockUserDataseems crafted specifically for this. However, I see no apparent way to set the user data on an existing text block, or add my own text block to a document.
For example, I want to use
QTextBlock::setUserData()on an existing
QTextBlock, but the only way I see to access a particular block in a
QTextDocumentis with a copy:
QTextBlock findBlock(int pos) const QTextBlock findBlockByLineNumber(int lineNumber) const QTextBlock findBlockByNumber(int blockNumber) const QTextBlock firstBlock() const
QTextCursorwhere I see
QTextBlock block() const, but that also returns a copy.
QTextCursoralso has several methods to insert a block, but none of them allow you to insert your own object:
void insertBlock() void insertBlock(const QTextBlockFormat &format) void insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat)
I'm at a loss as to how I can either (1) access an existing block inside a document and set the user data or (2) insert my own block in which I've set the user data.
What am I missing? Thank you!
Wolosocu last edited by
This post is deleted!
Kent-Dorfman last edited by
QTextCursor constructor takes a reference to an existing block. You should be able to change that block passed into the constructor using the QTextCursor methods. You don't need to copy the QTextBlock, AFAICT.
Since the parameter is const reference, we'll assume that the const-ness is cast away once QTextCursor has a "handle" to the text block. At least that's how it appears to be to me...I've never used those classes.