以下方法收集自網絡
使用 QTextDocument
的 contentsChanged
信號可以解決此問題。
QTextEdit *editor = new QTextEdit(this);
...
connect(editor->document(),SIGNAL(contentsChanged()),this,SLOT(textAreaChanged()));
...
private slots:
void textAreaChanged()
{
QTextDocument *document=qobject_cast<QTextDocument*>(sender());
document->adjustSize();
if(document)
{
QTextEdit *editor=qobject_cast<QTextEdit*>(document->parent()->parent());
if (editor)
{
int newheight = document->size().rheight()+10;
if (newheight != editor->height())
{
editor->setFixedHeight(newheight);
}
}
}
}
QTextBrowser 同上。