C++ 如何通过双击选择QTableWidget的行?

C++ 如何通过双击选择QTableWidget的行?,c++,qt,qtablewidget,C++,Qt,Qtablewidget,这是我以前的代码 ui.tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); ui.tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); 这样,我只需单击一次即可选择行,双击即可编辑表格的单元格。现在我想用另一种方法,单击编辑单元格,双击选择行 单击一次即可编辑,代码应为 ui.tableWidget->setEditT

这是我以前的代码

ui.tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
ui.tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
这样,我只需单击一次即可选择行,双击即可编辑表格的单元格。现在我想用另一种方法,单击编辑单元格,双击选择行

单击一次即可编辑,代码应为

ui.tableWidget->setEditTriggers(QAbstractItemView::AllEditTriggers);

但是双击选择行,我还不知道。您能帮我吗?

要捕获单击和双击,您可以执行以下操作:

connect(ui.tableWidget, &QTableWidget::cellClicked, this, &cellClicked);
connect(ui.tableWidget, &QTableWidget::cellDoubleClicked, this, &cellDoubleClicked);
在本例中,
cellClicked
cellDoubleClicked
是您的函数。您可以在这些函数中执行任何操作:

1) 选择一行:

void MyClass::cellDoubleClicked(int iRow, int iColumn)
{
  ui.tableWidget->setRangeSelected(QTableWidgetSelectionRange(iRow, 0, iRow, ui.tableWidget->columnCount() - 1), 1);
}

2) 打开编辑器(使用
QTableWidget::openpersisteneditor

捕获单击并双击您可以执行以下操作:

connect(ui.tableWidget, &QTableWidget::cellClicked, this, &cellClicked);
connect(ui.tableWidget, &QTableWidget::cellDoubleClicked, this, &cellDoubleClicked);
在本例中,
cellClicked
cellDoubleClicked
是您的函数。您可以在这些函数中执行任何操作:

1) 选择一行:

void MyClass::cellDoubleClicked(int iRow, int iColumn)
{
  ui.tableWidget->setRangeSelected(QTableWidgetSelectionRange(iRow, 0, iRow, ui.tableWidget->columnCount() - 1), 1);
}

2) 打开编辑器(使用
QTableWidget::openpersisteneditor

感谢您的帮助。你能解释清楚吗?我仍然不知道如何定义
rowIdx
和定义函数
cellDoubleClicked
。谢谢。我这样定义,但是
连接中的
&cellDoubleClicked
出现错误:“绑定成员函数表达式上的操作无效”。谢谢您的帮助。你能解释清楚吗?我仍然不知道如何定义
rowIdx
和定义函数
cellDoubleClicked
。谢谢。我是这样定义的,但是在
连接
中的
&cellboolblicked
:“绑定成员函数的表达式上的操作无效”。我肯定你知道你在做什么,但这与我在桌面、web和移动应用中看到和做的完全相反。@UmNyobe:是的,我知道,但这是要求。我的想法和你的一样,但我别无选择(我去过那里:(我肯定你知道你在做什么,但这与我在桌面、网络和移动应用程序中看到和做的完全相反。@UmNyobe:是的,我知道,但这是要求。我和你的想法相同,但我没有选择。)(