2012-04-06 15 views
0

Qtでアクティビティを有効にするには、押された状態に基づいて複数のキーを渡す必要があります。最初はQKeySequenceを使って同じことをしようとしていましたが、動的ではありません。一連のキーを作成する方法

keyPressEvent() { 
    if (keypress event) { 
    switch(keyevent->key()) { 
     Qt::Key_Alt: 
     "add this key to qkeysequence" 
     Qt::Key_Control: 
     "add this key to qkeysequence" 
     Qt::Key_Shift: 
     "add this key to qkeysequence" 
     Qt::Key_P: 
     "add this key to qkeysequence" 
    } 
    } 
    if (keyrelease event) { 
    switch(keyevent->key()) { 
     Qt::Key_Alt: 
     "remove this key from qkeysequence" 
     Qt::Key_Control: 
     "remove this key from qkeysequence" 
     Qt::Key_Shift: 
     "remove this key from qkeysequence" 
     Qt::Key_D: 
     "remove this key from qkeysequence" 
    } 
    } 

    handleKeySequence(qkeysequence); 
} 

handleKeySequence(qkeysequence) { 
    if (qkeysequence matches Qt::Key_Ctrl) do something 
    else if (qkeysequence matches Qt::Key_ctrl+Qt::Key_D) do something 
    .... other such sequences 
} 

しかしQKeySequence doesntのは、そこに何かをするように見える、といくつかのより多くのオプションを試してみました、そして、彼らはどちらかの多くを助けてはいけません。

お手数ですが、ありがとうございます。

答えて

0

QShortcut

を見てみましょう。またthis post

+0

イワンは、実際にQShortcutが私のために働かないおかげで、そして他のポストをチェックし、それを通過し、それはどちらかずっと私を助けないだろうでした...私がやりたいことは、複数のキーを1つのコンテナにパッケージ化してdiffコンポーネントに送信することです。キーに基づいてそれを処理できるはずです。 'QKeySequence'は完璧に聞こえます。一度作成したキーは変更できません。 – Ravi

関連する問題