1

我在这个问题中间被困了一周左右,我在 Qt for Symbian 论坛上发现了一个类似的问题,但没有人回答它。

问题很简单,当我运行应用程序时,它仍然不是一个应用程序,只是一个原型:),无论是在模拟器上还是在真实设备上,并使用物理 QWERTY 键盘键入普通字符,在这种情况下是设备在横向时,不会调用函数keyPressEvent,但是如果我按下回车键、退格键、不同的箭头和操作键等键就会调用它。如果我在模拟器上运行应用程序并使用开发机器键盘键入也会发生这种情况。

另一方面,如果我在模拟器上使用屏幕上的迷你 QWERTY 键盘,或者使用开发机键盘打字并且模拟器是纵向的,keyPressEvent 函数就会被调用。

现在更具体地说,我有一个继承自 QTextEdit 的类,我覆盖了其中的函数 keyPressEvent 和 focusInEvent,我还在类的构造函数中调用了函数 setFocusPolicy,但似乎没有解决问题。

另外我不得不说我正在尝试的代码是示例 customcompleter 的修改版本,并且发现这个问题也发生在原始代码中。

所以伙计们,有人知道如何解决这个问题吗?

问候。

4

1 回答 1

1

您可以keyReleaseEvent通过覆盖event(QEvent*)和验证确实生成了哪些事件来检查和/或监视所有事件。可能正在生成不同的合适事件。

但是,您描述的行为对我来说确实听起来像一个错误。您可以查看Qt Bug Tracker和/或提交错误报告。

于 2010-09-15T21:29:23.390 回答