2010-04-22 89 views
0

基本上我试图给输入键相同的功能作为返回键时编辑qtablewidget中的单元格。如果编辑一个单元格并按下Enter键,我希望它跳出编辑该单元格就像返回一样。这感觉就像我从字面上尝试了一切。我甚至尝试将返回的新闻事件传递给qcoreapplication。这似乎是如果你编辑一个单元格,然后按下一个键来触发它不会发生的动作。这似乎是问题所在,我不知道如何解决这个问题。我已经将这个程序的所有键盘快捷键设置为操作,因为它似乎更容易设置。有没有另外一种方法可以在编辑单元格时使关键事件发生?发布编辑QTableWidget单元格

任何人都可以帮忙吗?

预先感谢您。

试过这个。它不适合我。 How can I tell a QTableWidget to end editing a cell?

+0

我不确定明白你的意思,你可以创建一个小例子来重现问题吗?主要功能+基本qtablewidget +几步重现请? – 2010-04-22 18:11:06

+0

我是通过QT创建者完成的,所以它会说一点点选择,给你一个功能,你可以复制粘贴并重现问题。 基本上我有一个主窗口中有一个qtablewidget。该表具有行和列等我有一个nextCell行动,我也创建了连接到Enter键。这一切都是在表单编辑器中完成的。我有这样的主要功能:connect(ui-> nextCell,SIGNAL(切换(布尔)),这个,SLOT(on_nextCell_triggered())); 将钥匙连接到插槽,但如果按下回车键,则在编辑单元时该插槽不会运行。 – Schomin 2010-04-22 18:46:57

+0

所以基本上,当你正确使用on_nextCell_triggered()时,会触发on_nextCell_triggered(),但是当你编辑单元格时不会触发on_nextCell_trigger();你尝试在做任何事情之前检查并取消on_nextCell_triggerd()中的可能编辑? – 2010-04-23 05:41:28

回答

0

好了,所以我看了看事件和过滤器,它基本上固定我的问题我设置它是这样的:

void MainWindow::keyPressEvent(QKeyEvent *event){ 
    if (event->key() == Qt::Key_Enter) { 
    if (ui->tableWidget_2->hasFocus()){ 
     on_nextCell_Triggerd(); 
    } 
    else { 
    QWidget::keyPressEvent(event); 
    } 
} 

当回车键被触发,将autopull你退出编辑模式。无需做任何事情。