• 6194阅读
  • 9回复

QLineEdit 输入问题 [复制链接]

上一主题 下一主题
离线woshimibao
 
只看楼主 正序阅读 楼主  发表于: 2010-03-17
我按照网上的程序写了两个QLineEdit,并用了eventFilter,但是发现运行时输入不了了?!

TryLineEdit::TryLineEdit(QWidget *parent) :
    QWidget(parent)
{
    line1=new QLineEdit(this);
    line2=new QLineEdit(this);
    line2->move(0,40);

    line1->installEventFilter(this);
    line2->installEventFilter(this);
}

bool TryLineEdit::eventFilter(QObject *widget, QEvent *event){
    if(widget==line1||widget==line2){
        if(event->type()==QEvent::KeyPress){
            QKeyEvent *keyEvent=static_cast<QKeyEvent *>(event);{
                if(keyEvent->key()==Qt::Key_Down){
                    focusNextChild();
                }
                if(keyEvent->key()==Qt::Key_Up){
                    focusPreviousChild();
                }
                return true;
            }
        }
    }
    return QWidget::eventFilter(widget,event);
}

我错在哪里?帮忙啊...谢谢啦!
离线benbenmajia

只看该作者 9楼 发表于: 2010-03-19
LS说的是什么意思?
安然.....
离线fangjuntan

只看该作者 8楼 发表于: 2010-03-19
charsetdddd 没问题
离线fangjuntan

只看该作者 7楼 发表于: 2010-03-19
charsetdddd 没问题
离线benbenmajia

只看该作者 6楼 发表于: 2010-03-19
调用提供的本来接口就可以
安然.....
离线woshimibao
只看该作者 5楼 发表于: 2010-03-18
但是其他键的输入不也是keyPressEvent吗?怎么去定义呢?
离线benbenmajia

只看该作者 4楼 发表于: 2010-03-18
比如:
bool TryLineEdit::eventFilter(QObject *widget, QEvent *event){
    if(widget==line1||widget==line2){
        if(event->type()==QEvent::KeyPress){
            QKeyEvent *keyEvent=static_cast<QKeyEvent *>(event);{
                if(keyEvent->key()==Qt::Key_Down){
                    focusNextChild();
                }
                if(keyEvent->key()==Qt::Key_Up){
                    focusPreviousChild();
                }
                return true;
            }
        }
    }
else
{
      设置键盘其他键点击时候的输入
}
    return QWidget::eventFilter(widget,event);
}
安然.....
离线benbenmajia

只看该作者 3楼 发表于: 2010-03-18
你可以更改这段代码啊,既然知道了是因为跳出了判断if,为什么不自己写else?
安然.....
离线woshimibao
只看该作者 2楼 发表于: 2010-03-18
有人知道原因吗?
离线woshimibao
只看该作者 1楼 发表于: 2010-03-17
我发现问题出在当focusNextChild()时,再输入任何不适上下键的键盘都会进入if判断是不是上下键,然后因为输入东西不可能是上下键,就跳出。

谁知道在用eventFilter的情况下,focusNextChild()之后可以输入???

谢啦!
快速回复
限100 字节
 
上一个 下一个