• 6042阅读
  • 2回复

[提问]已定义的变量为何在使用时提示为定义呢 [复制链接]

上一主题 下一主题
离线quser
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-14
bool FilterDialog::eventFilter ( QObject * o, QEvent * e )
{
    if(o==lineedit1||o==lineedit2)
    {
        if(e->type()==QEvent::KeyPress)

            QKeyEvent *keyEvent=static_cast<QKeyEvent *>(e);

        if(Qt::Key_Space  ==  keyEvent->key())
        {
            focusNextChild();
            return true;
        }
    }
    return QDialog::eventFilter(o,e);
}
对话框中事件过滤器的实现,  我定义了一个变量QKeyEvent *keyEvent,但是在if语句中使用时
if(Qt::Key_Space  ==  keyEvent->key()) 就提示我未定义,弄的我丈二和尚摸不着后脑袋
但是如果在定义后紧接着使用keyEvent 就能正常调用.

难道我非得定义一个全局变量来存放强制转换过来的e事件么?

难道说我发现了一个bug?
离线dbzhang800

只看该作者 1楼 发表于: 2011-05-14
呵呵,编译器那容易有这么低级的错误啊。

你自己少加了一对 {}
离线quser
只看该作者 2楼 发表于: 2011-05-14
回 1楼(dbzhang800) 的帖子
哎~ 多谢楼上的解答啊  确实是少了一对括号  我忽略了变量的作用域了  
快速回复
限100 字节
 
上一个 下一个