2013-09-26 40 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

嘿感謝!這讓我再次感動。 –