如何在Qt小部件中获取Ctrl+Left mouse click事件。我能够从QObject::keyPressEvent()获取键事件,并从QObject::mousePressEvent()单击鼠标。但是我需要在同一个函数中同时捕获两者。有人可以给正确的方向一些指针。谢谢。

最佳答案

您可以尝试使用其他变量,例如:

private:
    bool ctrlIsPressed = false;

protected:
    void keyPressEvent(QKeyEvent *event)
    {
        if( event->key() == Qt::Key_Control )
           ctrlIsPressed = true;
    }
    void keyReleaseEvent(QKeyEvent *event)
    {
        if( event->key() == Qt::Key_Control )
           ctrlIsPressed = false;
    }

    void mousePressEvent()
    {
        if( ctrlIsPressed )
            // ... Your code
    }

10-08 09:43