2013-09-26 41 views
0

我使用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(); 

一旦我得到几何图形,我会做一个QPropertyAnimation从图标大小到MainWindow大小。


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(); 
} 

enter image description here

回答

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; 
} 

现在你应该有父窗口部件相应项目位置。 那么你应该得到的图像的位置,该项目并计算相对于主窗口的位置。

其中的一些可以帮助

QPoint mapToParent (const QPoint & pos) const

QPoint mapFromParent (const QPoint & pos) const

+0

嘿感谢!这让我再次感动。 –