1

単一の文字の 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

何が欠けているか分かりますか?

4

2 に答える 2

2

変更を適用するには、テキストの一部を選択する必要があります (実際のエディターと同様)。実際に物を選択せず​​に、カーソルを位置に設定するだけです。

テキストを選択したい場合は、選択を開始したままカーソルを別の位置に移動する必要があります。

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

これにより、カーソルが位置 4 に設定されます。次に、カーソルが位置 5 に移動しますが、選択アンカーは保持されます。その結果、位置 4 と 5 の間のすべてが選択されます。

これで、変更が選択に適用されます。

于 2016-09-16T13:12:34.787 に答える