当文本字符串大于给定的几何图形时,如何自动调整 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();
}
我希望文本字符串可见(即不滚动)并且关闭自动换行。
最佳答案
您可以使用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
信号,您可以使用。
关于c++ - Qt:如何自动调整QTextEdit对象的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44145326/