在 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】:

为了获得按下项目的行和列值,您需要将QTableViewpressed() 信号连接到插槽。像这样的:

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 上单击鼠标左键获取行和列?的主要内容,如果未能解决你的问题,请参考以下文章

调整大小以适应 QTableView 中的行和列非常慢

qtabelwidget怎么得到指定行和列的值

HTMLjs Table单击事件,获取表格行和列及单元格数值的方法

如何过滤掉单个项目,而不仅仅是在行和列的基础上?

[HTML]js Table单击事件,获取表格行和列及单元格数值的方法

[HTML]js Table单击事件,获取表格行和列及单元格数值的方法