QT6代码
文本超过label长度则用…代替
void resizeEvent(QResizeEvent *event) {
QString name = ui->label->toolTip();
// 清空文本内容,避免被文本内容影响长度
ui->label->setText(QString());
QWidget::resizeEvent(event);
// 字体信息类,用于获取特定字体下文本的高度宽度等
QFontMetrics fontMetrics(ui->name->font());
// 如果当前名称长度大于label,则超出部分变为...
if (fontMetrics.horizontalAdvance(name) > ui->name->width()) {
name = fontMetrics.elidedText(name, Qt::ElideRight, ui->name->width());
}
ui->label->setText(name);
}
注意点:horizontalAdvance代替了QT6以前的width函数