如果标签大小较小,QLabel setText不显示QLineEdit的文本

时间:2018-03-31 12:47:36

标签: qt qt4

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

ui->LE_Serverpath// contains 20 charecters

ui->LB_UsernameInfo  // having size of 10 charecters

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

使用wordwrap线路正在切割,但我最后需要虚线

ui->LB_UsernameInfo->setWordWrap(true); 

2 个答案:

答案 0 :(得分:0)

您必须为标签设置 ElideMode ,您需要标签字体中的QFontMetrics实例,然后为标签设置文本elide模式。要在行尾显示点,请在复制的文本Qt::ElideRight上将ElidMode设置为QLieEdit

//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);

答案 1 :(得分:0)

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