文本过长可以勾选 WordWrap 为true
或者在代码里
Label->setWordWrap(true);
Label->setAlignment(Qt::AlignTop);
有时候不让换行,但是随着客户改变窗口大小,有些文字视觉上会被遮挡,就需要计算显示多少文字了
根据窗口的大小计算显示的文本,显示不下,在右边显示省略号.
QString ResizeDisplayText(QString &strText, QWidget* pWidget)
{
QString strRet = strText;
// 若文字放不下,在右边显示省略号
QFontMetrics metrics(pWidget->font());
if (metrics.width(strRet) > pWidget->width())
{
strRet = QFontMetrics(pWidget->font()).elidedText(strRet, Qt::ElideRight, pWidget->width());
}
return strRet;
}
改变窗口大小时调用resizeEvent函数
void resizeEvent(QResizeEvent *event)
{
// 计算显示的文本
QString strDisplayText = CalcDisplayText(m_strTitle, ui.Label);
//显示实际能显示的内容
ui.Label->setText(strDisplayText);
}