2017-02-15 1381 views
-1

如何在Qt窗口中獲取Ctrl+Left mouse click事件。我可以從QObject::keyPressEvent()獲得關鍵事件,並從QObject::mousePressEvent()點擊鼠標。但我需要在同一個函數中捕獲兩者。有人能指出正確的方向嗎?謝謝。Ctrl +鼠標左鍵單擊事件捕獲Qt

回答

1

您可以嘗試使用其他變量,如:

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 
    } 
+0

其實我想避免這種情況,但是這是可以做到這樣。謝謝。 – has