6

Qt では、 is かどうかを確認することで、押されたQKeyEventかどうかを確認できます。しかし、どうすれば左右のキーを区別できますか?Ctrlev->key()Qt::Key_ControlCtrl

AltShiftキーにも同じものが必要です。

4

4 に答える 4

3

Qt私の知る限り、純粋なメソッドを使用してこれを行う方法はありません。

QKeyEvent::nativeScanCode()ただし、プラットフォームによっては、 の代わりに メソッドを使用してキーを区別できる場合がありますQKeyEvent::key()

たとえば、Windows では、どのCtrlキーが押されたかを次のようにテストできるはずです。

if (event->nativeScanCode() == VK_LCONTROL) {
  // left control pressed
} else if (event->nativeScanCode() == VK_RCONTROL) {
  // right control pressed
}
于 2012-07-01T15:37:39.627 に答える
0

VK_RCONTROLうまくいかない場合は、nativeScanCode の - の値を確認してctrlくださいright

std::cout<<keyEvent->nativeScanCode();この値を使用します。

int control_right = 285;
if(key->nativeScanCode() == control_right){...
于 2017-04-15T15:43:59.710 に答える