c++ - QTableWidgetItem 将光标移动到一个单元格(不只选择)
问题描述
我的任务很简单。在表格中,用户输入数字并按下回车键后移动到下一行。
我有QTableWidget与从信号获取光标位置的关键事件:
connect(ui->table->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), key, SLOT(cell_position(QModelIndex)));
关键事件:
...
if ( (key->key()==Qt::Key_Enter) ) {
...
QTableWidgetItem:
...
QTableWidgetItem *item = table->item(m_pos, n_pos);
if(item == nullptr)
{
QTableWidgetItem *item = new QTableWidgetItem;
table->setItem(m_pos, n_pos, item);
item->setSelected(1);
...
但它给了我这种行为 - 它选择当前输入的单元格下的单元格。光标停留在其位置。
请问,您知道如何向下移动光标吗?我尝试了一些 QTableWidgetItem 方法,但没有找到合适的方法。
谢谢。
更新:而不是
item->setSelected(1);
我用
table->setCurrentItem(item);
这可以满足我的需要。它将光标移动到项目单元格。
解决方案
如果我理解正确,您想更改当前项目,您可以调用该QTableWidget::setCurrentItem()
方法。
推荐阅读
- swift - 为 CloudKit 数据库快速设置参考值
- python - Python和覆盆子picamera对象计数,多次计数
- ios - 如何以高性能方式显示具有自动调整单元大小的大型 UICollectionView?
- javascript - 如何使用 Javascript 以秒为单位记录相当于 Qualtrics 的“页面提交”时间?
- design-patterns - 如何将类的实例与接口类型进行比较?
- python - 将项目添加到数据库而不在文本框中输入
- excel - 为什么我不能设置另一个工作簿?(Excel VBA)
- c# - C# RestSharp Cookie
- amazon-web-services - 您如何始终强制 AWS lambda 触发 SQS?
- azure-active-directory - 如何在同一个浏览器应用程序中管理多用户,而无需使用 azure 广告/应用程序一直注销/登录