QTableWidgetItem 将光标移动到一个单元格(不只是 select)
QTableWidgetItem move cursor to a cell (not select only)
我的任务很简单。在 table 中,用户输入数字并按下回车键后移动到下一行。
我有 QTableWidget 和 key 事件 从信号 获取光标位置:
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 方法,但没有找到任何 suitable 方法。
谢谢。
更新:
而不是
item->setSelected(1);
我用
table->setCurrentItem(item);
这正是我所需要的。它将光标移动到项目单元格。
如果我没理解错的话,你想改变当前项目,调用QTableWidget::setCurrentItem()
方法即可。
我的任务很简单。在 table 中,用户输入数字并按下回车键后移动到下一行。
我有 QTableWidget 和 key 事件 从信号 获取光标位置:
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 方法,但没有找到任何 suitable 方法。
谢谢。
更新: 而不是
item->setSelected(1);
我用
table->setCurrentItem(item);
这正是我所需要的。它将光标移动到项目单元格。
如果我没理解错的话,你想改变当前项目,调用QTableWidget::setCurrentItem()
方法即可。