在 QTableView 上单击鼠标左键获取行和列?
Posted
技术标签:
【中文标题】在 QTableView 上单击鼠标左键获取行和列?【英文标题】:Gettting row and colums from one left mouse click on QTableView? 【发布时间】:2013-11-14 17:00:01 【问题描述】:我在QTableView
中显示多张图片。现在我想跟踪用户按下鼠标左键一次的图像,我想跟踪它,因为我将在更大的窗口中准确地显示该图像。我怎样才能做到这一点?我的意思是如何获取用户按下鼠标左键一次的图像的行和列索引?
我在 QTableView 中看不到任何直接的clicked()
SIGNAL,那么提供 QTableView 的行或列的工具是什么?
编辑:
我想我还应该提到我使用QStandardItemModel
将模型设置在QTableView
中。首先我设置模型的行和列,然后在QStandardItem
中输入每个QImage
类型项(我将QImage
转换为QIcon
),然后将QStandardItem
放入QStandardItemModel
,一次QStandardItemModel
已设置或已填写,我输入了 QTableView
。
谢谢。
【问题讨论】:
【参考方案1】:为了获得按下项目的行和列值,您需要将QTableView
的pressed()
信号连接到插槽。像这样的:
connect(tableView, SIGNAL(pressed(const QModelIndex &)), this, SLOT(onItemPressed(const QModelIndex &));
这里是处理鼠标动作的槽:
void MyClass::onItemPressed(const QModelIndex &index)
int row = index.row();
int column = index.column();
[..]
【讨论】:
非常感谢。它有助于检测单个选定的项目,你能建议一些选择多个项目的东西吗? @the_naive,看看QAbstractItemView::selectedIndexes()
函数。它将返回当前选定项目的列表。以上是关于在 QTableView 上单击鼠标左键获取行和列?的主要内容,如果未能解决你的问题,请参考以下文章
HTMLjs Table单击事件,获取表格行和列及单元格数值的方法