QStandardItem全球定位

时间:2017-10-06 07:11:21

标签: c++ qt

我的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                                                                                   

1 个答案:

答案 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