есть!Я хочу узнать, как изменить текущий формат строки в QTextEdit?
В документе, который я прочитал,
"Форматирование можно применить к текущему текстовому документу с помощью setCharFormat ()Функции mergeCharFormat (), setBlockFormat () и mergeBlockFormat (). Если у курсора нет выбора, текущий формат блока будет изменен. "
Но в моем приложении текущий блок, в котором находится курсор,не может быть измененоМогу я что-то пропустить?Тогда как я могу изменить текущий формат блока, который не имеет выделения?
Вот мой код:
QTextCursor cursor = this->textCursor();
QTextBlockFormat blockFmt;
blockFmt.setNonBreakableLines(true);
blockFmt.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysBefore);
QTextCharFormat charFmt;
charFmt.setFont(data->visualFont());
if(!cursor.hasSelection()) {
cursor.beginEditBlock();
cursor.setBlockFormat(blockFmt);
cursor.mergeBlockCharFormat(charFmt);
QTextBlock block = cursor.block();
block.setUserData(data);
cursor.endEditBlock();
}
Что я хочу сделать: изменить формат текущей строки, если выбора нет.Так что если cursor.hasSelection () имеет значение false, я просто объединяю новый формат для блокировки символов.Но это не работает.
Я также попытался добавить setTextCorsor (курсор);после cursor.endEditBlock ();, но все равно не работает.Фактически, после добавления этого, весь блок становится невидимым.
Так как я могу изменить текущий формат блока, который не имеет выбора?