問題タブ [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 に答える
1421 参照

qt - Qt ウィジェットが keyPressEvent を受信しない

私の子ウィジェットはkeyPressEventsを取得しませんが、トップレベルウィンドウと同じウィジェットを配置すると取得します。フォーカスを設定しようとしましたが、これには影響しません。コードは以下にあり、私が何をしようとしているのかを示しています。

完全なものについては、同じ .pro ファイル:

キー イベントを受信するようにウィジェットを修正するにはどうすればよいですか?

この関連する質問では、イベント フィルターのインストールが提案されていますが、私はそうしたくありません。ウィジェット自体を修正するための自己完結型の方法が必要です。

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

c++ - キー押下のイベント フィルタに関する問題

QtCreator を使用して GUI でソフトウェアを作成する方法を学ぼうとしています。私は以前にいくつかのプログラミングを行ったことがありますが、これに関係することはありませんでした。これまでのところ、2 つのラベル、1 つのボタン、1 つの lineEdit、1 つの listWidget の 5 つの項目を持つウィンドウを作成しました。

私の目標は、lineEdit にテキストを入力して listWidget に表示できるようにすることです。マウスでボタンをクリックすると、これで問題なく動作します。

また、キーボードの Enter/Return キーを使用してボタンをアクティブにできるようにしたいと考えています。これは私が助けを必要としている部分です。

キー イベントを処理するために、KeyboardFilter という新しいクラスを作成しました。

メイン ウィンドウ オブジェクトにイベント フィルタをインストールしました。eventFilter 関数は、任意のイベントを受け取り、それがキー イベントであるかどうかを確認し、次にそれが入力ボタンであるかどうかを確認する必要があります。そうであれば、ボタンをアクティブにしたいと思います。

eventFilter のために書いたものが実際に機能しているかどうかはわかりません。

このコードを実行すると、ウィンドウがポップアップし、lineEdit にテキストを入力できます。マウスでボタンをクリックすると、必要に応じてテキストが listWidget に移動されます。テキストを入力して「Enter」を押しても、何も起こりません。

Enterキーを押す前に、タブを押してlineEdit、listWidget、およびボタンにフォーカスを移そうとしましたが、役に立ちませんでした。

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

linux - Linux で QKeyEvent::text() がアクセント文字を返さない

` + aQKeyEvent::text()と入力すると、Linuxで1 つの空の文字列とàではなく、 1 つの空の文字列と 1 つの文字aが返される理由を知っている人はいますか? Windows では、これは正常に動作しているようです (Windows と Linux で同じアプリケーションを実行しています)。

このクラスを介して押されたキーを処理しています。