QTextEdit
позволит вам добавить содержимое через QString
:
QTextEdit myEdit("the fish are coming");
Это также позволяет вам использовать QTextDocument
, который содержит блоки текста.
Сама QTextDocument
также может принимать QString
:
QTextEdit myEdit;
QTextDocument* myDocument = new QTextDocument("the fish are coming", &myEdit);
myEdit.setDocument(myDocument);
Однако, «если вам нужно создать новый текстовый блок или изменить содержимое документа при проверке его содержимого, используйте вместо этого интерфейс на основе курсора, предоставленный QTextCursor
». (документация Qt) (Заметьте, я добавил строки QTextBlockFormat
, чтобы было ясно, где находятся блоки.)
QTextEdit myEdit;
QTextDocument* myDocument = new QTextDocument(&myEdit);
myEdit.setDocument(myDocument);
QTextCursor* myCursor = new QTextCursor(myDocument);
QTextBlockFormat format;
format.setBackground(Qt::red);
myCursor->setBlockFormat(format);
myCursor->insertText("the ");
format.setBackground(Qt::green);
myCursor->insertBlock(format);
myCursor->insertText("fish ");
format.setBackground(Qt::yellow);
myCursor->insertBlock(format);
myCursor->insertText("are ");
format.setBackground(Qt::red);
myCursor->insertBlock(format);
myCursor->insertText("coming!");
format.setBackground(Qt::green);
myCursor->insertBlock(format);
myCursor->insertText(QString(%1 blocks").arg(myDocument->blockCount()));
myEdit.show();
Кажется, мне нужно приложить немало усилий. Можете ли вы дать дополнительную информацию о том, почему вы чувствуете, что вам необходимо использовать QTextBlock
s?