2013-05-29 9 views
6

Qtが新しくなりました。Qt:MACのCmd +キーショートカットを定義する方法

Cmd + numeric keyキーシーケンスをMacでコードで定義するにはどうすればよいですか? Windowsの場合

numberはMAC cmdキーで同じである必要がありますどのような、たとえば、2

ここで私は

QKeySequence(QString("Ctrl+") + QString::number(number)); 

がありますか?

そして、私たちがMacまたはWindowsで動作しているかどうかをQtが何らかの形で判断することは可能ですか?

答えて

9

Qt::Modifier enum documentationで述べたように:

注意:Mac OS Xでは、CTRL値が のMacintoshキーボードのコマンドキーに対応し、META値がコントロールに キー

に対応

QKeySequence documentationは、より詳細である:

注:Mac OS Xでは、への参照"Ctrl"、Qt :: CTRL、Qt :: Control、および Qt :: ControlModifierは、キーボードの キーボードのコマンドキーに対応し、 "Meta"、Qt :: META、Qt :: Metaおよび への参照です。Qt: :MetaModifierはコントロールキーに対応しています。あなただけでWindowsは/ Linux上CtrlCmdを使用している場合はMac OS X上の開発者は、すべてのプラットフォームで同じショートカットの説明を使用することができ、かつ

だから、マックOS X上で期待通り 自分のアプリケーションが自動的に動作しますMacOSでは、Windowsシーケンスを使用するだけで何も変更する必要はありません。

+0

MacではQKeySequence(QString( "Cmd + 1"))のようにする必要がありますか?私はちょうど私が確認するMacを持っていない、申し訳ありません。 –

+1

いいえ、 "Ctrl"トークンはMacで "Cmd"キーと見なされる 'Qt :: CTRL'にマップされるため、QKeySequence(QString(" Ctrl + 1 "))'はプラットフォームに関係なく正しく読み込まれます。 – cmannett85

関連する問題