因为我要实现右击菜单功能,然后通过选择菜单的选择对该行数据做修改,所以我需要先获取到该行的数据,,因为QTableView本身是视图,是对数据进行展示,所以想直接获取到该行的model是不可行的。
看通过以下方法来获取行各字段的数据:
首先写上我右击的信号槽吧。
connect(ui.Da_TableView,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(show_right_menu(QPoint)));
查看帮助手册,我们知道TableView可发送customContextMenuRequested(QPoint)信号来传递QPoint表示点击的位置。
接下来是获取该行数据的代码
show_right_menu(QPoint pos){QModelIndex current_index = ui.Da_TableView->indexAt(pos);QAbstractItemModel* m = (QAbstractItemModel *)current_index.model();for(int columnIndex = 0;columnIndex < m->columnCount();columnIndex++){QModelIndex x = m->index(current_index.row(),columnIndex);QString s = x.data().toString();}}
这里通过QModelIndex的model函数将其转换成QAbstractItemModel。
把自己当傻瓜,不懂就问,你会学的更多