如果标签尺寸小,QLabel setText 不显示 QLineEdit 的文本

QLabel setText not displaying text of QLineEdit if label size small

我有一个 QLabel,我想在其中显示来自 QLineEdit 的文本。行编辑的大小比标签大所以我想显示以虚线结尾的标签

ui->LE_Serverpath// contains 20 charecters

ui->LB_UsernameInfo  // having size of 10 charecters

ui->LB_UsernameInfo->setText(ui->LE_Serverpath->text());

使用自动换行,该行被截断了,但我需要在末尾加上虚线

ui->LB_UsernameInfo->setWordWrap(true); 

您必须为标签设置一个 ElideMode,您需要一个来自标签字体的 QFontMetrics 实例,然后为标签设置文本省略模式。要在行尾显示点,请在文本复制形式 QLieEdit:

上将 ElidMode 设置为 Qt::ElideRight
//QFontMetrics metrics(ui->LB_UsernameInfo->font()); // QLabel already has font metrics

int width = ui->LB_UsernameInfo->width() - 2;
QString text = ui->LB_UsernameInfo->fontMetrics().elidedText(ui->LE_Serverpath->text(), Qt::ElideRight, width);
ui->LB_UsernameInfo->setText(text);
ui->LB_UsernameInfo->setWordWrap(true);

使用 Qt 的布局 类,它会根据文本宽度调整大小。