有时候有的控件没有文本超大于控件宽度的时候,显示点点点……的属性,即elidetext。
这个时候最简单的方法就是自己把文本设置一下。
下面上代码
//定义elidtText接口,比如自定义QLineEdit控件,追加接口
void CustomLineEdit::setElideText(const QString &text) {
QFontMetrics fontWidth(this->font());
//第二个参数是哪边显示点点点,最后一个参数就是当文本到达什么宽度的时候,为什么不是width而是减去6,是实际调试的时候,如果控件可以拉伸,会出现文字左右会浮动,所以缩短一点就能稳定。
QString elidnote = fontWidth.elidedText(text,Qt::ElideRight,this->width()-6);
this->setText(elidnote);
//设置提示,当看不到的时候,把鼠标放在控件上,可以显示文本,所以一般把全部文本设置进去,挺方便的
this->setToolTip(text);
}
原创不易,喜欢就点个赞吧。
转载请注明出处