QTableWidget控件,其中的每一个Item中显示的文字内容比较多,如果设置Item过大的话,文字虽然可以显示出来,但是整个页面就会显示的Item比较少。所以为了多显示Item,每个Item的大小设置还是要适中一些,带来的问题就是每个Item中显示的内容不全。但是还必须要让用户了解每一个Item中的内容,所有就想到了使用“气泡”来显示其中的内容。
实现的以上功能:
- 必须开启界面的鼠标捕获功能:
ui->tableWidget->setMouseTracking(true);
- 接收QTableWidget的信号
itemEntered(QTableWidgetItem *item)
(也可以是其它信号):connect(ui->tableWidget, &QTableWidget::itemEntered, this, &AuthToMe::setItemToolTip);
槽函数
void Widget::setItemToolTip(QTableWidgetItem *item)
{
QFontMetrics fontWidth(ui->tableWidget->font());
int font_size = fontWidth.width(item->text());
// 根据需求指定列
int width = ui->tableWidget->columnWidth(0);
if (font_size > width)
QToolTip::showText(QCursor::pos(), item->text());
}
效果图