其他分享
首页 > 其他分享> > c – 如何使用QTextBlock?

c – 如何使用QTextBlock?

作者:互联网

我对C和Qt完全不熟悉.

我想用QTextBlocks填充QTextEdit对象,我该怎么做?

例如如果我有句子“鱼来了”我怎么把每个单词放入自己的QTextBlock并将该块添加到QTextEdit,或者我误解了QTextBlock实际上是如何工作的?

解决方法:

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 documentation)(注意,我添加了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();

似乎需要付出很多努力才能找到我.您能否提供有关您认为需要使用QTextBlocks的原因的其他信息?

标签:qtextedit,c,qt4
来源: https://codeday.me/bug/20191006/1858245.html