我正在尝试为单个字符更新QTextCharFormat。但这并不适用:

QTextCursor cursor(document());
cursor.setPosition(4);
QTextCharFormat format;
format.setFontPointSize(sizeString.toInt());
cursor.mergeCharFormat(format);
qDebug() << "SET POS " << cursor.position() << " TO " << sizeString.toInt();

QTextCursor cursor2(document());
cursor.setPosition(4);
QTextCharFormat charformat = cursor2.charFormat();
QFont font = charformat.font();
qDebug() << " LOADED FONTSIZE: " << font.pointSize();

输出:
SET POS  4  TO  16
 LOADED FONTSIZE:  36

知道缺少什么吗?

最佳答案

要应用更改,您必须选择一部分文本(例如在真实的编辑器中)。
您仅将光标设置到一个位置,而没有实际选择任何东西。

如果要选择文本,则必须在保持选择开始的情况下将光标移动到另一个位置。

cursor.setPosition(4);
cursor.setPosition(5, QTextCursor::KeepAnchor);

这会将光标设置到位置4。然后将光标移动到位置5,但保持选择 anchor 。结果将选择位置4和5之间的所有内容。

现在,您所做的更改将应用​​于选择。

10-08 15:52