問題タブ [qevent]

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 投票する
2 に答える
9774 参照

qt - Qt keyPressEvent、"Hold"、および keyReleaseEvent ボタン/マウス クリックでの処理

ハードウェアをシミュレートする Qt プログラムを作成しています。ボタンのプレス、ホールド、およびリリース イベントをシミュレートしたいと考えています。私のアプリケーションでは、キーボードとマウスの両方のクリックからの入力を処理して、ユーザー (つまり私) にとって便利なものにしたいと考えています。奇妙な動作に気付きましたが、理解できません。

アプリケーションは QPushButton をautoRepeat有効にして 100 ミリ秒で使用しautoRepeatDelayautoRepeatInterval. ボタンをマウスでクリックすると、「押された」イベントと「離された」イベントが交互に表示されます。1 ~ N-1 の「押された」イベントの後に「解放された」イベントが続くと予想していました。なぜQtはそのように振る舞うのですか?

また、キーボードからのボタンの押下を処理する次のコードも実装しました。

ここでは、2 種類の動作が見られます。英数字キーの場合、「押された」イベントと「離された」イベントが交互に表示されます。矢印キーについては、「リリースされた」イベントのみが表示されます。繰り返しますが、1 ~ N-1 の「押された」イベントの後に「解放された」イベントが続くと予想していました。矢印キーの動作が英数字キーと異なるのはなぜですか?

私がやろうとしていることはQtで可能ですか?

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

qt - マウス イベントの決定: ホバーは子ウィジェットの親のままにします

親ウィジェットと子ウィジェットの 2 つのウィジェットがあります。

ここに画像の説明を入力

ウィジェットの実装にアクセスした場合、イベント ハンドラーを実装したり、ウィジェットを派生させたりせずredに、カーソルがウィジェットからウィジェットにホバーする瞬間を判断することは可能redですか?blueblue

赤い領域の厚さは明確に定義されています (例: 5px)。

0 投票する
3 に答える
3478 参照

qt - QML オブジェクト間でイベントを渡す

QML イベントを初期イベント ハンドラの途中で別の QML アイテムに渡したい状況があります。例えば

達成するために何ができpassEventToObjectますか?

ノート:

  • Keys.onPressed内部を変更するアクセス権がありませんitem2。これは QML 組み込み ( TextInput) です。
  • イベントの受け渡しは、途中で発生する必要がありますitem1.Keys.onPressed
0 投票する
2 に答える
168 参照

qt - キューに入れられた接続のロギング

Qt 5.4 で構築された複雑な状態エンジン システムを使用しています (カスタム状態エンジン クラスを使用)。

そのコードの一部は、イベント、遷移などのログです。状態エンジンで何が起こっているかを完全に追跡できるように、エンジン/状態オブジェクトが受け取るすべてのイベントをログに記録することは非常に重要です。

ほとんどのイベント タイプでは、ロギングは簡単です。ただし、キューに入れられた接続 (つまり、メタ コール イベント) をログに記録できませんでした。QMetaCallEvent はプライベートなので、できることはあまりありません。しかし、そのような Qt の不可欠な部分が適切に検査できないとは信じがたいです。

キューに入れられた接続 (可能であれば、シグナル名、スロット名、送信者名、受信者名、および引数を含む) をログに記録できる方法はありますか?

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

c++ - ボタンを押して入力すると、QWidget は QEvent::MouseMove をトリガーしません

C++ を使用した Qt で、内部に小さな QWidget を含むウィンドウを作成しました。

小さな QWidget は、毎回QEvent::EnterQEvent::LeaveまたはQEvent::MouseMoveトリガーされるたびにメッセージを表示します。

小さな QWidget の外側で任意のマウス ボタンを押した (押したままにした) 場合、マウスをこの小さな QWidget の上に移動すると (押したまま)、QEvent::MouseMoveこの小さな QWidget に対してはトリガーされません。さらに、QEvent::Enterマウス ボタンが離された後に延期されます。

逆の状況: マウスが小さな QWidget で押された (そして保持された) 場合、マウスが外側に移動するとQEvent::Leave、マウス ボタンが離された後に延期されます。

QEvent::MouseMoveマウスボタンを押したままでも、常に取得するソリューションはありますか?

追加データ: はい、setMouseTracking(true)設定されています。

テスト例:

ウィジェット:

主要

計画

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

c++ - Qt LanguageChange イベント - 新しい言語を見つける

changeEvent(QEvent* event)receive type を使用し ている場合event->type() == QEvent::LanguageChange、アプリの新しい言語に関する情報を取得するにはどうすればよいですか?

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

c++ - QEvent シグナルとスロット

Qt プロジェクトを作成し、QEvent と QMouseEvent でカスタマイズしたスタイルで QPushButton を追加しました。このボタンにスロットを追加しましたが、機能しません。ここに私のようなプロジェクトがあります:

ヘッダー 1:

ヘッダー 2:

ソース 1:

ソース 2:

ソース 3:

ソース 2 で次のエラーが発生します。

エラー: 'QObject::connect(myQPushButton&, const char*, MainWindow*, const char*)' への呼び出しに一致する関数がありません QObject::connect(y, SIGNAL(clicked()), &w, SLOT(close()) ); ^

このボタンを終了ボタンにしたい。誰かが私を助けることができますか?