Qt keyPressEvent


keyPressEvent是QWidget里面的函數,所以凡是繼承自QWidget的類都可以通過實現這個函數來完成對按鍵事件的響應。

要讓當前的widget能夠響應按鍵事件,最先需要做的事情是,調用:

setFocusPolicy(Qt::StrongFocus);

接下來就是keyPressEvent方法的聲明與實現了~

// 聲明
void keyPressEvent(QKeyEvent *event);
// 實現
void DisplayGLWidget::keyPressEvent(QKeyEvent* event)
{    
    switch (event->key())
    {
    case Qt::Key_Up:
        mix = (mix + 0.1) > 1 ? 1 : mix + 0.1;
        std::cout << "mix = " << mix << endl;
        updateGL();
        break;
    case Qt::Key_Down:
        mix = (mix - 0.1) < 0 ? 0 : mix - 0.1;
        std::cout << "mix = " << mix << endl;
        updateGL();
        break;
    default:
        break;
    }
}

需要注意的是,響應按鍵事件后,需要updateGL,否則當前窗口不會自動重新繪制。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM