Перестало работать форматирование текста в QTextEdit. Что ему еще надо?
qt, qt5, редактор, форматирование, QTextEdit
У меня есть класс EditorTextArea, унаследованный от QTextEdit
В нем есть метод, который вызывается при смене гарнитуры шрифта в QFontComboBox:
void EditorTextArea::onChangeFontFamily(QString fontFamily) { qDebug() << "Apply font family " << fontFamily; // Ранее для установки шрифта хватало одной команды setFontFamily(fontFamily); // Теперь так не работает, весь новый код ниже сделан на основе Qt примера Text Edit // Но и новый вариант тоже не работает QTextCharFormat format; format.setFontFamily(fontFamily); // Если нет выделения, дополнительным курсором выделяется слово, на котором стоит курсор QTextCursor cursor = this->textCursor(); if (!cursor.hasSelection()) { cursor.select(QTextCursor::WordUnderCursor); } cursor.mergeCharFormat(format); this->mergeCurrentCharFormat(format); }
Проблема в том, что при срабатывании этого кода на экране ничего не меняется. Новый шрифт не применяется.
Но если подвигать курсором, и посмотреть на виджет выбора шрифта (который отображает текущий шрифт под курсором), можно заметить, что шрифт для выделенного текста установился. Как минимум, в структуре документа место, где был изменен шрифт, помечено, что оно имеет новый установленный шрифт. И при этом начертание текста не меняется!
Однако, если посмотреть на сгенерированный HTML-код такого документа (в примере есть кнопка с паутинкой), то будет видно, что нового шрифта в нем не будет, везде будет упоминаться сплошной Sans Serif.
Это дело происходит на Qt 5.13.1.
Еще наблюдение: стандартный пример Text Edit работает нормально. Тот же самый код приводит к форматированию, новое начертание сразу становится видно.
В общем, не знаю как заставить работать выбор шрифта.
Проект:
https://github.com/xintrea/mytetra_dev
Файл: ./app/src/libraries/wyedit/EditorTextArea.cpp
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
- molni99
- Қаз. 26, 2024, 1:29 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:20ұпай,
- Бағалау ұпайлары-10
Добрый день. Странно как-то, может быть виджет не перерисовывается? не пробовали делать update виджета?