QTablewidget根据单元格中的内容长度,显示tooltip气泡

  • 开启鼠标捕捉

    //表格中的内容过长无法显示完全时,显示tooltip气泡
    //开启鼠标捕捉
    ui->tableWidget->setMouseTracking(true);
    //连接信号槽
    connect(ui->tableWidget, &QTableWidget::cellEntered, this, &WidgetMain::OnCellEntered);
  • 连接槽函数

void WidgetMain::OnCellEntered(int row, int column)
{
    QTableWidgetItem *item = ui->tableWidget->item(row, column);
    if (item == nullptr) {
        return;
    }

    QFontMetrics fontWidth(ui->tableWidget->font());
    int font_size = fontWidth.width(item->text());
    int ncellCol = ui->tableWidget->columnWidth(column);    //判断内容是否过长

    if(font_size > ncellCol)
    {
        QToolTip::showText(QCursor::pos(), item->text());
    }
}

你可能感兴趣的:(Qt学习,ui)