QT — Увеличить размер расширенного текста при нажатии кнопки

#qt

#qt

Вопрос:

Как мне увеличить размер расширенного текста при нажатии кнопки?

У меня есть поле QTextEdit с вставленным в него расширенным текстом.При нажатии [кнопка пользовательского интерфейса] мне нужно увеличить размер шрифта всего текста внутри него. Есть идеи о том, как это сделать?

Ответ №1:

Решение

Это то, что вы должны сделать внутри слота :

 //-------------------------desired format------------------------------- 
qreal pointSize = 40; // 40 for example, you can parameterize it
QTextCharFormat format;
format.setFontPointSize(pointSize);
//----------------------------------------------------------------------
ui->textEdit->selectAll(); 
//            ^^^^^^^^^^^ You ask for all text in the textedit
// But remember partially change with mouse selection is also doable
ui->textEdit->mergeCurrentCharFormat(format);
  

(PS ui->textEdit является указателем на QTextEdit )

Ключевым моментом является создание экземпляра QTextCharFormat , чтобы задать «частичную» информацию о шрифте (например, только информацию о размере) и использовать QTextEdit::mergeCurrentCharFormat для объединения исходного формата с новым форматом.


Например:

После объединения с помощью описанных выше операций цвет, шрифт … и т.д., Кроме размера, будут сохранены:

введите описание изображения здесь

Ответ №2:

Вы можете использовать QTestEdit::setCurrentFont() функцию. Например:

 QTextEdit te;
QFont f = te.currentFont();

int oldPointSize = f.pointSize();
int newPointSize = oldPointSize   10;
f.setPointSize(newPointSize);
te.setCurrentFont(f);

te.setText("Test");
te.show();