如果你想获取listwidget中item的位置和尺寸,你可以尝试以下方法:
- 使用QListWidget::visualItemRect()方法,传入一个item作为参数,返回一个QRect对象,表示item在listwidget中的矩形区域。
- 使用QRect::x()和QRect::y()方法,获取item的左上角坐标。
- 使用QRect::width()和QRect::height()方法,获取item的宽度和高度
以下是参考源代码。
#include <QApplication>
#include <QListWidget>
#include <QListWidgetItem>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QListWidget *listWidget = new QListWidget;
listWidget->setFlow(QListWidget::LeftToRight); // 设置水平流动方向
for (int i = 0; i < 10; ++i) {
QListWidgetItem *item = new QListWidgetItem(QString("Item %1").arg(i + 1));
listWidget->addItem(item);
}
listWidget->show();
// 获取每个item的位置和尺寸
for (int i = 0; i < listWidget->count(); ++i) {
QListWidgetItem *item = listWidget->item(i);
QRect rect = listWidget->visualItemRect(item); // 获取item的矩形区域
int x = rect.x(); // 获取item的左上角x坐标
int y = rect.y(); // 获取item的左上角y坐标
int w = rect.width(); // 获取item的宽度
int h = rect.height(); // 获取item的高度
qDebug() << "Item" << i << "position:" << x << y << "size:" << w << h;
}
return app.exec();
}
运行结果如下:
Item 0 position: 0 0 size: 64 32 Item 1 position: 64 0 size: 64 32 Item 2 position: 128 0 size: 64 32 Item 3 position: 192 0 size: 64 32 Item 4 position: 256 0 size: 64 32 Item 5 position: 320 0 size: 64 32 Item 6 position: 384 0 size: 64 32 Item 7 position: 448 0 size: 64 32 Item 8 position: 512 0 size: 64 32 Item 9 position: 576 0 size: 64 32