QEvent :: FocusOut有错误:数字常量之前的预期unqualified-id

时间:2015-05-04 16:45:03

标签: c++ qt enums

我在eventFilter()中使用枚举QEvent :: Type。代码如下所示:

#include <QEvent>
...
bool myClass::eventFilter(QObject *obj, QEvent *event) {
    if (evnet->type() == QEvent::FocusOut) {                 // first "if"
    // if (event->type() == static_cast<QEvent::Type>(9)) {  // second "if"
        // Do something...
    }
    retrun QObject::eventFilter(obj, event);
}

使用第一个&#34; if&#34;,我收到了编译错误:

myfile.cpp: In member function 'virtual bool myClass::eventFilter(QObject*, QEvent*)':
myfile.cpp:66: error: expected unqualified-id before numeric constant
myfile.cpp:66: error: expected ')' before numeric constant.
Compile myfile.cpp failed

然而,如果我改为第二个&#34;如果&#34;我注释掉了(9是Event :: Type枚举中FocusOut的整数),它编译。

另一方面,对于第一个&#34; if&#34;,我也尝试过其他一些类型,奇怪的是,其中一些编译(ActionAdded,Close ...),有些则没有(FocusIn,事件的内容...)。

我在网上搜索了一下,似乎与操作系统有关,但我并没有真正解决这个问题。我使用的是RHEL5.8。谁知道问题是什么?感谢。

0 个答案:

没有答案