qt中點擊LineEditdit彈出軟鍵盤的方法

如我前面博客關於Qt的Event Filter所講,可以利用Event Filter進行事件過濾,又不懂的先看我前面那個博客:

http://blog.csdn.net/xwdpepsi/article/details/8757232

 

多的不說,直接上代碼:

在.h文件加入:

public:

      KeyBoardDialog v_keyB;//鍵盤對話框

private slots:
    bool eventFilter(QObject *,QEvent *);    //注意這裏軟件盤相關

在.cpp文件中加入:

在構造函數中加入:

    ui->weightMaxlineEdit->installEventFilter(this);

在.cpp中添加eventFilter函數的實現代碼

bool Widget::eventFilter(QObject *watched, QEvent *event)
{
    if (watched==ui->weightMaxlineEdit)         //首先判斷控件(這裏指 lineEdit1)
    {
        if (event->type()==QEvent::FocusIn)     //然後再判斷控件的具體事件 (這裏指獲得焦點事件)
        {
            QString ret = v_keyB.returnValue();//
            ui->weightMaxlineEdit->setText(ret);
             //QMessageBox::information(this,tr("消息"),"複製完成");
             ui->weightMaxlineEdit->clearFocus();//防止weightMaxlineEdit重新獲得焦點再一次激發時間
        }
    }

     return QWidget::eventFilter(watched,event);     // 最後將事件交給上層對話框
}

大功告成!如果有什麼不懂,可直接留言
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章