Qt 4.5.3 QEvent :: EnterEditFocus

时间:2010-01-12 16:37:36

标签: c++ qt

在Qt docs中,EnterEditFocus是一个关于编辑器小部件获得焦点进行编辑的事件,但是使用Qt 4.5.3,编译失败并且'EnterEditFocus'不是'QEvent'的成员。怎么了?

3 个答案:

答案 0 :(得分:3)

如果Idan的建议不起作用,请注意除非您使用QT_KEYPAD_NAVIGATION定义了Qt,否则不会定义QEvent :: EnterEditFocus。请参阅以下文档:

http://doc.qt.io/archives/4.6/qapplication.html#keypadNavigationEnabled

答案 1 :(得分:0)

您可能忘记包含QEvent

大多数Qt类都是前向声明的,尝试添加:

#include <QtCore/QEvent>

答案 2 :(得分:0)

从键盘导航的qt文档中查看以下引用。听起来这个功能已被弃用或最好在嵌入式平台上使用:

bool QApplication::keypadNavigationEnabled () [static]
不推荐使用此功能。如果Qt设置为使用键盘导航,则返回true;否则返回false。 Symbian上的默认值为true,但在其他平台上为false。此功能仅适用于嵌入式Linux,Symbian和Windows CE的Qt。注意:在Windows CE上,默认情况下,触摸设备mkspecs禁用此功能。要启用键盘导航,请使用定义的QT_KEYPAD_NAVIGATION构建Qt。另请参见navigationMode()。

如果您知道在QEvent :: Type的源代码中有以下内容,那么这可能会更有意义:


#ifdef QT_KEYPAD_NAVIGATION
EnterEditFocus = 150, // enter edit mode in keypad navigation
LeaveEditFocus = 151, // enter edit mode in keypad navigation
#endif