QListWidget文本溢出时添加ToolTips
Qlistwidget文本溢出时需要添加hover效果,而且默认鼠标放上去对应的item会变大一些,所以减去17个像素点进行完美匹配,可以按照自己的UI大小进行特殊处理,
原理:获取QListWidget的字体,计算对应文本使用该字体后占用的宽度,当算出来的宽度大于item占据的宽度时,就需要添加tooltips
QListWidgetItem * item = new QListWidgetItem(m_ui->ListWidget);
item->setSizeHint(QSize(30, 30));
QString nameStr = "我是一条测试文本";
item->setText(nameStr);
m_ui->ListWidget->addItem(item);
int itemWidth = m_ui->ListWidget->contentsRect().width() - 17;//去除边框以及选中时的缩放影响
QFontMetrics fontMetrics(m_ui->ListWidget->font());
int fontSize = fontMetrics.width(nameStr);
if (fontSize > itemWidth)
{
item->setToolTip(nameStr);//设置提示信息
}