Mar*_*rio 20 layout qt text-styling css3 qlabel
我在一个小部件中有一个QLabel元素,可以调整大小.文本可以溢出边界,所以我需要,为了使应用程序看起来更优雅,某些方法使文本在文本中最后一个完全可见的单词之后生成省略号(...).
在HTML/CSS中制作布局我以前用过text-overflow: ellipsis;这个,但是对于QT类我没有找到任何关于此的信息.
ser*_*nko 37
在您的标签调整大小事件中,您可以使用窗口小部件的新宽度创建省略文本并重置文本.使用QFontMetrics :: elidedText方法获取字符串的省略版本.
QString text("some long text without elipsis");
QFontMetrics metrics(label->font());
QString elidedText = metrics.elidedText(text, Qt::ElideRight, label->width());
label->setText(elidedText);
Run Code Online (Sandbox Code Playgroud)
希望这有帮助,问候
我修改了上面描述的解决方案并创建了一个函数:
static void SetTextToLabel(QLabel *label, QString text)
{
QFontMetrics metrix(label->font());
int width = label->width() - 2;
QString clippedText = metrix.elidedText(text, Qt::ElideRight, width);
label->setText(clippedText);
}
Run Code Online (Sandbox Code Playgroud)
希望它会有用.
| 归档时间: |
|
| 查看次数: |
12408 次 |
| 最近记录: |