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

当QTableWidget中的单元格内容过长时,通过开启鼠标捕捉并设置信号槽机制,在cellEntered事件触发时,检测字体宽度与列宽对比。如果内容宽度大于列宽,则使用QToolTip显示完整文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 开启鼠标捕捉

    //表格中的内容过长无法显示完全时,显示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());
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值