QTableWidgetItem 将光标移动到单元格(不仅选择)

问题描述 投票:0回答:2

我的任务很简单。在表格中,用户输入数字并按下回车键后移动到下一行。

我有 QTableWidgetkey event 从信号中获取 cursor position:

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);

这就是我需要的。它将光标移动到项目单元格。

c++ qt qtablewidget
2个回答
1
投票

如果我没理解错的话,你想改变当前项目,调用

QTableWidget::setCurrentItem()
方法即可。

QTableWidget::setCurrentItem


0
投票

你应该用来设置当前索引的函数是

QModel索引位置;

table->setCurrentIndex(位置);

© www.soinside.com 2019 - 2024. All rights reserved.