我有一个使用iconMode中的QListView的photobrowser。当双击照片缩略图时,我会显示一个带有完整尺寸图像的QWidget。
我希望为全尺寸图片的显示设置动画,从点击的图标的位置缩小,但我无法确定如何访问几何图形。我用来显示图像的例程位于底部。我一直在努力尝试访问几何体而没有成功。我已经使用selectionModel()尝试了一些事情,但我认为这是错误的。我错过了哪些显而易见的事情?
QItemSelection sel = thumbView->selectionModel()->selection();
qDebug() << "sel.count()" << sel.count();
QItemSelectionRange selItem = sel.first();
qDebug() << "selItem" << selItem.left() <<selItem.top()<< selItem.right()<< selItem.bottom();
获得几何图形后,我将执行从图标大小到MainWindow大小的QPropertyAnimation。
void ImageBase::displayImageFullsize(const QModelIndex &index)
{
QSqlRecord record = imageModel->record(index.row());
QByteArray image_data = record.value(3).toByteArray();
QPixmap pixmap = QPixmap();
pixmap.loadFromData(image_data);
imageView->setPixmap(pixmap);
imageView->setMinimumSize(QSize(1024,768));
imageView->adjustSize();
imageView->show();
}
答案 0 :(得分:1)
您可以使用visualRect ( const QModelIndex & index )
获取视图中的项目的QRect示例:
void UrlView::mousePressEvent(QMouseEvent *event) // Derived from QAbstractItemView
{
QModelIndex index = indexAt(event->pos());
QRect rect = visualRect(index);
qDebug() << rect;
}
现在您应该拥有相对于父窗口小部件的项目位置。 然后你应该获得该项目中的图像位置并计算相对于MainWindow的位置。
其中一些可以提供帮助