2012-04-06 11 views
0

Ich muss mehrere Tasten basierend auf dem gedrückten Zustand übergeben, um eine Aktivität in Qt zu ermöglichen. Anfangs versuchte ich QKeySequence zu benutzen, aber es scheint nicht dynamisch zu sein.Wie eine Reihe von Schlüsseln erstellen

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 
} 

jedoch QKeySequence scheint nicht etwas zu tun, und versucht, einige weitere Optionen, und sie nicht viel weiterhelfen.

jede Hilfe wäre toll, danke.

Antwort

0

Werfen Sie einen Blick auf QShortcut

Auch this post

+0

Dank Ivan überprüfen, wäre eigentlich QShortcut für mich nicht funktioniert, und die andere Post, hat durch sie gehen und das würde mir viel auch nicht helfen ... was ich tun möchte, ist Art von mehreren Schlüsseln in einem einzigen Container und senden Sie es an Diff-Komponenten, und sie sollten in der Lage sein, es basierend auf den Schlüsseln zu behandeln. 'QKeySequence' klingt perfekt, nur kann ich nicht ändern (fügen Sie eine Taste drücken oder entfernen Sie eine Taste drücken) einmal bequem erstellt. – Ravi

Verwandte Themen