【发布时间】:2011-02-11 04:47:01
【问题描述】:
基本上,在编辑 qtablewidget 中的单元格时,我试图为输入键提供与返回键相同的功能。如果编辑一个单元格并按下输入,我希望它像 return 一样跳出编辑该单元格。感觉就像我真的尝试了一切。我什至尝试将返回新闻事件传递给 qcoreapplication。似乎如果您编辑一个单元格并按下一个键来触发它不会发生的动作。这似乎是问题所在,我不知道如何解决这个问题。我一直在将此程序的所有键盘快捷键设置为操作,因为它似乎更容易设置。是否有其他方法可以在编辑单元格时允许键事件发生?
有人可以帮忙吗?
提前谢谢你。
试过这个。它对我不起作用。 How can I tell a QTableWidget to end editing a cell?
【问题讨论】:
-
我不确定你的意思,你能创建一个重现问题的小例子吗?主要功能 + 基本的 qtablewidget + 重现的几个步骤?
-
我是通过 QT creator 完成的,所以它会稍微分开来给你一个功能,你可以复制粘贴并重现问题。基本上我有一个主窗口,里面有一个 qtablewidget。该表有行和列等。我还创建了一个连接到 Enter 键的 nextCell 操作。这一切都是在表单编辑器中完成的。我在主函数中有这个:connect(ui->nextCell, SIGNAL(toggled(bool)), this, SLOT(on_nextCell_triggered()));它将键连接到插槽,但是如果您按 Enter 键,则在编辑单元格时插槽不会运行。
-
所以基本上,on_nextCell_triggered() 会在您正确使用时触发,但不会在您编辑单元格时触发...您是否尝试检查并取消可能的 on_nextCell_triggerd( ) 在做其他事情之前?
-
是的,我试图做的正是在其他任何事情发生之前取消 on_nextCell_triggerd() 中的编辑,但是当输入被击中时它甚至不会运行 on_nextCell_triggerd() 所以它有点毫无意义
-
你看过了吗:doc.trolltech.com/4.6/eventsandfilters.html。也许通过正确处理您在编辑期间击中的键,您可以通过键过滤来执行不同类型的操作...我真的不确定它是否可以帮助您,但值得一看...