Я пытаюсь реализовать общий текстовый редактор с использованием 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, не должен выделяться
это правильный способ выделения или есть способ лучше? и почему текст, который я написал непосредственно в текстовом редакторе, остается выделенным, даже если я установил белый фон?
заранее всем спасибо :)