Как изменить размер шрифта ранее написанного текста в 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);
    }
};

Полный пример можно найти по следующей ссылке

Другие вопросы по тегам