0

在我的程序中,我试图在窗口大小发生变化时自动调整文本大小。我已经使用 resizeEvent 来执行此操作,并且它正在识别窗口何时调整大小。但是,每当我尝试使用 setFontPointSize 更改字体大小时,它都不起作用。我可以让它工作的唯一方法是使用 setText 并使用 HTML 来更改字体大小,但是,这是不可取的,因为我无法访问 HTML 中的小部件大小和变量。

4

1 回答 1

0

当您更改字体时,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);
    }
};

一个完整的例子可以在下面的链接中找到

于 2018-02-17T03:21:38.470 回答