2017-10-06 6 views
0

My Qtバージョンは5.5.1(Linux)なので、何らかの理由でアップグレードできません。QStandardItemグローバルポジション

QTableView(QWidgetから継承)があり、このQTableViewにはQStandardItemモデルを持つモデルQStandardItemModelがあります。問題は、この状況でQスタンダードアイテムのグローバル調整を得る方法ですか? QStandardItemの局所的な位置を取得するための

UIファイル

QWidget *MY_QWidget; 
MY_QTableView *MY_QTableView; 
MY_QWidget = new QWidget(); 
MY_QTableView = new QTableView(MY_QWidget); 

時間ファイル

QStandardItemModel * MY_QStandardItemModel; 

のcppファイル

MY_QStandardItemModel = new QStandardItemModel(); 
ui->MY_QTableView->setModel(MY_QStandardItemModel); 

QStandardItem *MY_QStandardItem; 
MY_QStandardItem = new QStandardItem(tr("some text")); 
MY_QStandardItemModel->setItem(0,0,MY_QStandardItem);// <- Global position of this item                     

答えて

1

あなたはQAbstractItemView::visualRectを使用することができます。

QModelIndex index = MY_QStandardItemModel->indexFromItem(MY_QStandardItem); 
QRect rect = MY_QTableView->visualRect(index); 
Qpoint localPoint = rect.topLeft(); // <- the local position 

とグローバル位置を取得するために、あなたはQWidget::mapToGlobalを使用することができます。

Qpoint globalPosition MY_QTableView->mapToGlobal(localPoint); // <- the global position 
関連する問題