在Qt文档中,EnterEditFocus是关于编辑器小部件获得焦点以进行编辑的事件,但使用Qt 4.5.3编译失败,并显示‘EnterEditFocus’不是‘QEvent’的成员。怎么了?
发布于 2010-01-13 01:06:37
如果Idan的建议不起作用,请注意没有定义QEvent::EnterEditFocus,除非您在构建Qt时定义了QT_KEYPAD_NAVIGATION。请参阅以下文档:
http://doc.qt.io/archives/4.6/qapplication.html#keypadNavigationEnabled
发布于 2010-01-13 00:51:04
您可能忘记了包含QEvent。
大多数Qt类都是向前声明的,尝试添加:
#include <QtCore/QEvent>发布于 2011-05-27 07:07:04
请看下面qt文档中关于键盘导航的引用。听起来这个功能已经被弃用了,或者最好在嵌入式平台上使用:
bool QApplication::keypadNavigationEnabled () [static]
此函数已弃用。如果Qt设置为使用键盘导航,则返回true;否则返回false。缺省值在Symbian上为true,在其他平台上为false。此功能仅在Qt for Embedded Linux、Symbian和Windows CE中可用。注意:在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
https://stackoverflow.com/questions/2050551
复制相似问题