問題タブ [qkeyevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1735 参照

qt - QKeyEventを特定のqmlアイテムに送信するには?

QKeyEventカスタム( Keypress key Bなど) をQML ファイル内のアイテム ( などTextField)に送信しようとしています。これは私が書いたもので、動作しません。アイテム ( ) がイベントを取得していないようです (のテキストに文字が追加されていないため、これを想定しています)。クラスでシグナルをキャプチャしてから、スロットでカスタムを投稿しようとしましたが、ここでは.TextFieldBTextFieldclick ClickHandlerhandleClick eventfocused itemTextField

ClickHandler.h

ClickHandler.cpp:

main.cpp:

main.qml:

0 投票する
2 に答える
1604 参照

c++ - QKeyEvent isAutoRepeat が機能していませんか?

そのため、特定のボタンを押し続けるとオーディオ デバイスが再生され、ボタンを離すとオーディオ デバイスが停止するアプリケーションがあります。以下のコードに似たこれを実装するためkeyPressEventに andを使用します。KeyReleaseEvent

しかし、押した後に0キーを離していないにもかかわらず、isAutoRepeat連続して印刷されているのを見ることができるため、明らかに機能が機能しkey_0 pressedていません。key_0 released私のコードが間違っていますか、それとも何かが間違っていますか?

ありがとう。

編集

MainWindowがキーボードのフォーカスを失ったため、これが起こっていると思います。どのウィジェットにフォーカスがあるかを実際に確認するにはどうすればよいですか? 押されたときに実際にいくつかのウィジェットを使用していますQt::Key_0が、それらの可能なウィジェットをすべてに設定したと思っていましたがQt::NoFocus、機能していないと思います。

次のようにして、どのウィジェットにフォーカスがあるかを知りたいと思っています。

ただし、常に空の文字列が出力されます。キーボードフォーカスがあるウィジェットの名前を出力するにはどうすればよいですか?

0 投票する
1 に答える
350 参照

qt - QKeyEvent のキー位置を取得する (マルチプラットフォーム)

すべてのキーボード レイアウトで機能する、位置ベースのキーボード ショートカットを作成するには、キーボード レイアウトを上に置かずに、物理的なキーボード キーを識別する必要があります。理想的には、QKeyEvent のスキャンコードを取得したいと考えています。これは、キーボード レイアウトに依存しないためです。

たとえば、ボリュームダウンボリュームアップ(US キーボード レイアウトで隣り合っている 2 つのキー)にマップShift+Qしたい場合、このスキャンコード セットに従って、これらをとにマップするだけで済みます。このように、Q と A が入れ替わるフランス語のキーボード レイアウトでも機能します。また、キーボード レイアウトは無視されるため、DVORAK キーボード レイアウトやその他の特殊なキーボード レイアウトでも機能します。Shift+WShift+0x10Shift+0x11

問題は、QKeyEvent のスキャンコード、またはキーボード レイアウトを無視して、すべてのプラットフォームで動作する物理キーの位置を示すその他のパラメーターを取得するにはどうすればよいかということです。Windows、Linux、OSX で動作するようにしたい。

QKeyEvent::nativeScanCode()はジョブを完了しますが、OSX では機能しません:\

0 投票する
1 に答える
176 参照

qt - keyEvent をウィジェットから QKeySequenceEdit に伝播します

と があり、でショートカットを編集するためにショートカットを押したいと思っQTreeWidgetています。私は eventFilter をインストールし、このソリューションを使用して対応するものを構築しました:QKeySequenceEditQTreeWidgetQKeySequenceEditQShortcut

現在のキーボード レイアウトに応じて QKeyEvent から QKeySequence をキャプチャするにはどうすればよいですか?

しかし、私はにイベントを送信することにこだわっていQKeySequenceEditます。ここに eventFilter のコードがあります

qDebug正しいキーを出力しますが、QKeySequenceEdit反応しません。

0 投票する
1 に答える
2695 参照

pyqt - フォーカス ポリシーを設定して矢印キー イベントを処理する

アプリケーションで矢印キーのキー イベントを処理したいと考えています。そのためには、フォーカスを無効にする必要があることを既に読んでいます。私はこの方法に従います: PyQt は矢印キーを認識しません。実際、self.setChildrenFocusPolicy(QtCore.Qt.NoFocus)(リンクされたスレッドと以下のソース コードで定義されているように) 内で呼び出すとMyApp.__init__、矢印キーを押すとキー イベントが発生します。ただし、アプリケーションの実行中にフォーカスを無効にしたくはありませんが、ボタンをクリックしたときだけです。そこでself.setChildrenFocusPolicy(QtCore.Qt.NoFocus)、ボタン クリック機能に移ります。

実際、プッシュ ボタンを押すとフォーカスが無効になります (たとえば、行編集でテキスト カーソルを取得できなくなります)。ただし、矢印キーを押してもキー イベントは発生しません。

アプリケーション全体 (プッシュ ボタンのある mainwindow.ui が必要です):

0 投票する
1 に答える
458 参照

c++ - Qt keyPressEvent エラー

このコードを書きましたが、次のエラーが発生します。

「'->key' の左側は、class/struct/union/generic 型を指している必要があります」。

GUIがクラスから派生したQWidgetクラスであることを考えると、キーの押下を適切にキャッチするにはどうすればよいですか?

は次のkeyPressEventように宣言されます。