我的Qt版本是5.5.1(Linux),由于某种原因我无法升级它。
我有QTableView(继承自QWidget),这个QTableView有QStandardItemModel模型和一些QStandardItem。问题是:如何在这种情况下获得QStandarditem全球协调?
ui file
QWidget *MY_QWidget;
MY_QTableView *MY_QTableView;
MY_QWidget = new QWidget();
MY_QTableView = new QTableView(MY_QWidget);
h file
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
答案 0 :(得分:1)
要获得QStandardItem
的本地排名,您可以使用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