問題タブ [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.
c++ - QComboBox でのテキスト変更イベントのキャプチャ
Red Hat Linux で Qt アプリケーションを開発しています。キャリッジ リターン キーの押下イベントをQComboBox
.
Enter KeyeditTextChanged()
ではなく、キーを押すたびに発行される信号にスロットを接続しました。
なんでそうなの?改行を検出する他の方法はありますか?
windows - 複数の修飾子を持つ KeyPress が QWidget で機能しない
メイン ウィジェットの keyPressEvent のオーバーライドを追加しました。
問題は、それが機能しないことです。AltModifier または ControlModifier を単独で試してみると (もちろん 2 番目の条件を変更しながら) 機能しますが、両方では機能しません。F11 を押している間、key() は Qt::Key_F11 と等しくなりません。私は窓を使用しています。
編集: ロギングでチェックした結果、Ctrl+Alt+F11 および Ctrl+Alt+F12 はキー イベントを送信しません (他の Ctrl+Alt+Fxx キーは送信します)。
qt - Windows ネイティブの仮想キー コードを Qt::Key に変換する方法は?
Windows ネイティブ プログラムと通信するプログラムに取り組んでいるため、実際のネイティブ仮想キー コードが必要です。Windows ネイティブの仮想キー コードから Qt::Key に変換する方法は?
c++ - QTextEditサブクラスでkeyPressEventをオーバーライドする
Qtに次の例があり、QTextEditのサブクラスのkeyPressEventをオーバーライドしようとしていますが、「txt :: keyPressEvent(QKeyEvent *)の複数の定義」が表示され、理由がわかりません。
txt.hでQTextEditを宣言し、それをcppにのみ含めることを試みましたが、他のエラーが発生します(おそらく、ヘッダーにクラスが必要なため、サブクラス化していますか?)
とにかく、私は何が間違っているのですか?
編集:別のクラス(QLabel)でも試してみましたが、同じエラーが発生します...
qt - Qtを使用してAlt + F4ウィンドウのクローズを無効にするにはどうすればよいですか?
次の行を使用して、ダイアログから Qt の X ボタンを無効にしました。
しかし、このコードを使用して Alt+を検出できませんでした:F4
QtでAlt+を検出または無効にするにはどうすればよいですか?F4
qt - QWizardでは、次のボタンはキーを押すイベントを受け入れることはできませんが、マウスを押すイベントを受け入れることができますか?
QWizardを継承するクラスがあり、2つの独立したQWizardPageを追加します。次のページに進む前に、最初のページでいくつかの作業(つまり、インターネット接続の確認)を行いたいと思います。ユーザーは、マウスで「次へ」ボタンをクリックするか、「次へ」ボタンがデフォルトでフォーカスされているため、キーボードで直接Enter/Returnを押すことができます。そこで、ボタンのイベントフィルターをインストールします。
button(QWizard :: NextButton)-> installEventFilter(this);
次に、ウィザードクラスで、イベント処理コードを実装します。
何度も試したように、マウスをクリックすると常にイベント処理コードが実行されますが、キーを押しても何も起こりません。もう1つの興味深い点は、ボタンを離さずにマウスを押してから、離れて離すと、ウィザードが最初のページに留まるので、キーを押すことができ、すべてOKです。
誰かが理由を見つけるのを手伝ってくれるでしょうか、それはQtのバグですか?キーイベントを正しく機能させるにはどうすればよいですか?
qt - すべての子ウィジェットの代わりにキーイベントを処理するQtダイアログを作成するには?
QDialogを継承するダイアログがあります。ダイアログには、Qbuttons、QLabel、QGraphicsView などを含む多くのウィジェットがあります。ボタンなどの多くのウィジェットは、フォーカスを取得したときに SPACE キーを押すイベントを処理できます。ここで、子ウィジェットのいずれにもそれを処理させたくありませんが、メイン ダイアログに処理させます。メイン ダイアログには多くのウィジェットがあるため、それらのウィジェットではなく qApp 用に EventFilter をインストールしませんでした。
コードは次のとおりです。
メインダイアログのイベントフィルター:
残念ながら、このコードを使用した後、メイン ダイアログのレイアウトがおかしくなり、一部のウィジェットはサイズ ポリシーを覚えていないようです。Qtのサイズ変更または再描画イベントが処理されていない可能性がありますか? メインダイアログでキーイベントをキャッチする方法を教えてもらえますが、他の機能には影響しませんか?
qt - QApplicationはキーイベントを処理しませんか?
main() では、qApp のイベント フィルターをインストールするだけです。次に MyDialog.cpp で:
いくつかのブレークポイントを設定しました。「return false」という行に到達できます。これは、qApp が MyDialog にイベント フィルターを正常にインストールしたことを意味します。しかし、キーボードを押しても「return true」という行に到達しませんでした。QApplication がすべてのイベントをディスパッチすることを覚えています。なぜこれが起こったのか誰か教えてもらえますか?
windows - VNC: Qt KeyEvent を使用可能な X11/RFB キーシムに変換
背景: 私は現在、Windows で使用する QWidget に埋め込まれた単純な VNC ビューアーを作成中です。このために、KRDC (KDE のリモート デスクトップ ビューアー) の Qt 専用 VNC バージョンと、その依存関係である Windows 上の libvncclient をコンパイルしました。ただし、現在発生している問題は、krdc が vnc を介してキー イベントを送信する方法にあります。これは単に QKeyEvent::nativeVirtualKey() の値を送信するだけで、X11 では都合よく既に有効な RFB キーシムになっています。ただし、Windows では、これは当てはまりません。
さて、この問題を解決するには、Qt の QKeyEvent::key() および ::modifier() データを有効な X11/RFB キーシムに変換するのが最善の (そして最終的に移植可能な) 方法だと思います。修飾子の状態 (XK_a と XK_A、これまでシフトのみを考慮してきました) に応じて異なるキーシムを選択する必要があることを考えると、これはやや複雑に思えます。X11 -> Qt の変換が Qt のソース コードでどのように行われるかを調べても、あまり役に立ちませんでした。
これを実現するライブラリまたはコード スニペットが既に存在する可能性はありますか? それとも、独自の (不完全な) 翻訳ルーチンを作成する必要がありますか? もしそうなら、これを行う最善の方法は何ですか?また、X11に関連して知っておくべき他の注意事項はありますか?
qt - qkeyeventを使用してqtでshift+数値キーを取得する
QKeyEventを使用してShift+数字キーを取得していますが、「!」のASCIIが返されます。「1」の代わりに私の問題は、「!」のASCIIの代わりに実際の数値のASCIIを取得する方法や手法はありますか。(特殊文字)。私もこのスレッドをフォローしました:
シフト修飾子を使用してキーコードからキー文字(値)を取得します
しかし、それは私がこの問題を取り除くのに役立たないようです。前もって感謝します。