当文本字符串大于给定的几何图形时,如何自动调整QTextEdit对象的大小以自动调整大小?
在下面的示例中,我将QTextEdit框的几何定义为100x100。但是,我想要显示的文本字符串可能比这大得多。
void MainWindow::display_text()
{
QTextEdit *text = new QTextEdit(this);
text->setWordWrapMode(QTextOption::NoWrap);
text->setFontPointSize(24);
/* Set the text box to be 100x100 */
text->setGeometry(1, 1, 100, 100);
/* The destination field may be too large to fit in the text box */
QString arg = QString("Destination: %1").arg(destination);
text->append(arg);
text->show();
}
我希望文本字符串可见(即不滚动)并关闭自动换行。
答案 0 :(得分:0)
您可以使用QFontMetrics
来计算。
QFontMetrics fm(text->font());
QString myText = text->toPlainText();
int calcWidth = fm.width(myText);
int calcHeight = fm.height(myText);
从那时起,您可以使用这些值将几何图形设置为您喜欢的任何尺寸。
text->setGeometry(1, 1, calcWidth, calcHeight);//Or whatever calculations you want
要随时更改大小,请使用信号和插槽,然后再次调用该代码。 QTextEdit
有一个很好的textChanged
信号可以使用。