QTableView:当用户使用鼠标点击特定单元格时,如何获取数据

Shi*_*apa 9 qt qtableview

实际上我是Qt的新手并且无法QMouseEvent与之匹敌QTableview

请帮助解决这个问题.

vah*_*cho 18

下面是一个如何在单击时获取表格单元格文本的示例.

假设QTableView在某个MyClass类中定义了一个.您需要connectclicked信号发送到您自己的MyClass::onTableClicked()插槽,如下所示:

connect(tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onTableClicked(const QModelIndex &)));
Run Code Online (Sandbox Code Playgroud)

插槽实施:

void MyClass::onTableClicked(const QModelIndex &index)
{
    if (index.isValid()) {
        QString cellText = index.data().toString();        
    }
}
Run Code Online (Sandbox Code Playgroud)

根据您的目标doubleClicked,您也可以使用pressed其他信号或其他信号.

  • @XavierGeoffrey,不同之处在于这些信号在不同的类中声明:分别是`QAbstractItemView::clicked()` 和`QTableWidget::cellClicked()`。第一个信号可用于所有项目视图类,例如树视图、表视图、列表视图,而第二个信号仅用于表小部件。参数也不同:有时传递模型索引比传递行和列更方便,尤其是对于树视图,其中也有父视图。 (2认同)