如何在QTableWidget中启用特定单元格的编辑模式?

3

我可以到达特定的单元格:

ui->tableWidget->setCurrentCell(ui->tableWidget->rowCount() - 1, 0);

但是,我该如何将单元格置于编辑模式,以便用户不必双击单元格即可开始编辑内容呢?

2个回答

4

QTableWidget类继承了QAbstractItemView,其中包含所需的API。

您只需要使用currentIndex()获取相关的模型索引,然后将其传递给edit()槽函数以将当前单元格置于编辑模式:

ui->tableWidget->edit(ui->tableWidget->currentIndex());

我遇到了编译错误:没有找到匹配的函数调用'QTableWidget::edit(QTableWidgetItem*)'。 - gornvix
1
@tyebillion。你需要使用currentIndex,而不是currentItem。 - ekhumoro

0
你可以从你所选中的内容中获取一个QTableWidgetItem,并将其传递给QTableWidget::editItem(QTableWidgetItem)函数;
ui->tableWidget->editItem(ui->tableWidget->currentItem());

这段代码可以编译,但(加入到我的代码中)在运行时没有任何作用。 - gornvix
@tyebillion 当你设置当前单元格后,如果你添加它,它肯定有效。 - Mohammad Kanan
你的代码已经编译通过了,为什么我还需要添加更多内容呢?我的代码已经将单元格标记出来了,但是按键盘上的键并不能编辑该单元格。 - gornvix
@tyebillion,为了测试,我把代码放在构造函数的末尾,当应用程序打开时,单元格被突出显示并处于编辑模式(内容突出显示并闪烁)。 - Mohammad Kanan
我也测试了信号/槽,它也可以工作。 - Mohammad Kanan
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接