在Qt docs中,EnterEditFocus是一个关于编辑器小部件获得焦点进行编辑的事件,但是使用Qt 4.5.3,编译失败并且'EnterEditFocus'不是'QEvent'的成员。怎么了?
答案 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()。
#ifdef QT_KEYPAD_NAVIGATION
EnterEditFocus = 150, // enter edit mode in keypad navigation
LeaveEditFocus = 151, // enter edit mode in keypad navigation
#endif