我有一个可以调整大小的小部件中的QLabel元素.文本可以溢出边界,所以我需要,为了使应用程序看起来更加优雅,有些方法使文本在文本中最后一个完全可见的单词之后生成省略号(…).
在HTML / CSS中进行布局我曾经使用text-overflow:省略号;为此,但对于QT课程,我没有找到任何有关这方面的信息.
解决方法
它看起来像您的标签
resize event上,您可以使用窗口小部件的新宽度创建删除文本并重置文本.使用
QFontMetrix::elidedText方法获取消除版本的字符串.
QString text("some long text without elipsis"); QFontMetrics metrics(label->font()); QString elidedText = metrics.elidedText(text,Qt::ElideRight,label->width()); label->setText(elidedText);
希望这有帮助,问候