Qt tablewidget相关

一. 获取表格项像素坐标

Qt中,可以通过QWidgetmapToGlobal()函数和QPoint的构造函数来获取某一QTableWidgetItem的像素坐标。具体步骤如下:

  1. 获取要获取像素坐标的QTableWidgetItem,假设它的指针为item
  2. 调用itemtableWidget()函数获取包含它的QTableWidget对象,假设它的指针为tableWidget
  3. 调用tableWidgetviewport()函数获取包含表格内容的视口区域,假设它的指针为viewport
  4. 调用itemrow()column()函数获取它在表格中的行列索引,假设它们分别为rowIndexcolumnIndex
  5. 调用viewportvisualItemRect()函数获取item在视口中的矩形区域,假设它的返回值为rect
  6. 调用viewportmapToGlobal()函数将rect转换为全局像素坐标,假设转换后的坐标为globalPos
  7. 根据rowIndexcolumnIndex计算出item的像素坐标,假设它的像素坐标为itemPos
QTableWidgetItem* item = tableWidget->item(rowIndex, columnIndex);
QWidget* viewport = tableWidget->viewport();
QRect rect = viewport->visualItemRect(item);
QPoint globalPos = viewport->mapToGlobal(rect.topLeft());
QPoint itemPos(globalPos.x() + 1, globalPos.y() + 1); // 加上一个像素的偏移量

其中,加上一个像素的偏移量是由于visualItemRect()函数返回的矩形区域不包括左上角的边框线,因此需要将像素坐标向右下方移动一个像素才能得到准确的位置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值