QTableWidget控件,其中的每一个Item中显示的文字内容比较多,如果设置Item过大的话,文字虽然可以显示出来,但是整个页面就会显示的Item比较少。所以为了多显示Item,每个Item的大小设置还是要适中一些,带来的问题就是每个Item中显示的内容不全。但是还必须要让用户了解每一个Item中的内容,所有就想到了使用“气泡”来显示其中的内容。

    实现的以上功能:

    1. 必须开启界面的鼠标捕获功能:
      ui->tableWidget->setMouseTracking(true);
    2. 接收QTableWidget的信号itemEntered(QTableWidgetItem *item)(也可以是其它信号):
      connect(ui->tableWidget, &QTableWidget::itemEntered, this, &AuthToMe::setItemToolTip);
    3. 槽函数

      1. void Widget::setItemToolTip(QTableWidgetItem *item)
      2. {
      3. QFontMetrics fontWidth(ui->tableWidget->font());
      4. int font_size = fontWidth.width(item->text());
      5. // 根据需求指定列
      6. int width = ui->tableWidget->columnWidth(0);
      7. if (font_size > width)
      8. QToolTip::showText(QCursor::pos(), item->text());
      9. }

      效果图
      image.png