Qt Как изменить выбранный текстовый символ на символьный - PullRequest
0 голосов
/ 08 июня 2018

Я создаю простой текстовый редактор в Qt.
Я могу редактировать выделенный текст и делать его, например, жирным шрифтом или подчеркиванием или и тем, и другим.Проблема в том, что выделенный текст частично полужирный, обычный или другой.Таким образом, единственный способ сделать это хорошо - взять выделенный текст и отредактировать его символ за символом (если он уже написан курсивом и я тоже хочу выделить его жирным шрифтом, символ должен быть и тем и другим).

Это частьмой код, в котором я могу изменить выделенный текст жирным шрифтом:

QFont font;
QTextCursor cursor = ui->textEdit->textCursor();
QTextCharFormat format;

if(cursor.hasSelection()){
    font = cursor.charFormat().font();
    if(!cursor.charFormat().font().bold()){
        font.setBold(true);
        format.setFont(font);
        cursor.setCharFormat(format);
    }
    else{
        font.setBold(false);
        format.setFont(font);
        cursor.setCharFormat(format);
   }
   ui->textEdit->setTextCursor(cursor);

Функция курсива идентична.Это не будет работать с уже отредактированным текстом.
Пример:

rand omt ext

Теперь я хочу выделить часть текстатакие как: "ndomte" и сделать все это жирным шрифтом.Мой результат:
ra ndomte xt
Что я хочу:
randomt e xt

Как мне это сделать?

1 Ответ

0 голосов
/ 08 июня 2018

Возможно, вы можете использовать QTextCursor::mergeCharFormat(const QTextCharFormat & modifier)?http://doc.qt.io/qt-5/qtextcursor.html#mergeCharFormat

Пример:

QTextCharFormat format;
format.setFontWeight(QFont::Bold);
cursor.mergeCharFormat(format);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...