Как изменить размер шрифта ранее написанного текста в textBrowser?
В моей программе я пытаюсь автоматически изменять размер текста при изменении размера окна. Я использовал resizeEvent, чтобы сделать это, и он распознает, когда размер окна изменяется. Однако всякий раз, когда я пытаюсь изменить размер шрифта с помощью setFontPointSize, он не работает. Единственный способ заставить его работать - это использовать setText и использовать HTML для изменения размера шрифта, однако это нежелательно, так как я не могу получить доступ к размеру и переменным виджета внутри HTML.
1 ответ
Решение
Когда вы меняете шрифт с setFontPointSize
вы сделаете это для нового текста, если вы хотите, чтобы он применялся ко всему тексту, вы должны выделить его и просто изменить размер шрифта:
class TextBrowser: public QTextBrowser{
protected:
void resizeEvent(QResizeEvent *event){
QTextBrowser::resizeEvent(event);
//some criteria to obtain the new font size
qreal size = 0.1*event->size().width();
QTextCursor cursor = textCursor();
selectAll();
setFontPointSize(size);
setTextCursor(cursor);
}
};
Полный пример можно найти по следующей ссылке