#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();