Редактирование текста QT не может сбросить charFormat после выделения [отредактировано] - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь реализовать общий текстовый редактор с использованием c ++ и qt. Хочу выделить разными цветами текст, вставленный разными пользователями. Я могу это сделать, но проблема в том, что я не могу сбросить charFormat, и весь последующий текст, который я написал, выделен

ВИДЕО ПРОБЛЕМЫ https://youtu.be/xDSQ0xgVcQQ

Функция вставки:

QTextCharFormat fmt;
insertCursor.setPosition(std::stoi(pos));
ui->textEdit->setTextCursor(insertCursor);
ui->textEdit->insertPlainText(character.c_str());
HighlightText(user, std::stoi(pos), std::stoi(pos) + 1);

Функция HighlightText

void MainWindow::HighlightText(std::string user, int begin, int end){
QTextCharFormat fmt;
fmt.setBackground(Qt::yellow);

QTextCursor cursor(ui->textEdit->document());
cursor.setPosition(begin, QTextCursor::MoveAnchor);
cursor.setPosition(end, QTextCursor::KeepAnchor);
cursor.setCharFormat(fmt);
}

в основном я пытаюсь выделить только символы, вставленные от другого пользователя, в то время как текст, вставленный непосредственно в textEdit, не должен выделяться

это правильный способ выделения или есть способ лучше? и почему текст, который я написал непосредственно в текстовом редакторе, остается выделенным, даже если я установил белый фон?

заранее всем спасибо :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...