問題タブ [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.
qt - Qt keyPressEvent、"Hold"、および keyReleaseEvent ボタン/マウス クリックでの処理
ハードウェアをシミュレートする Qt プログラムを作成しています。ボタンのプレス、ホールド、およびリリース イベントをシミュレートしたいと考えています。私のアプリケーションでは、キーボードとマウスの両方のクリックからの入力を処理して、ユーザー (つまり私) にとって便利なものにしたいと考えています。奇妙な動作に気付きましたが、理解できません。
アプリケーションは QPushButton をautoRepeat
有効にして 100 ミリ秒で使用しautoRepeatDelay
、autoRepeatInterval
. ボタンをマウスでクリックすると、「押された」イベントと「離された」イベントが交互に表示されます。1 ~ N-1 の「押された」イベントの後に「解放された」イベントが続くと予想していました。なぜQtはそのように振る舞うのですか?
また、キーボードからのボタンの押下を処理する次のコードも実装しました。
ここでは、2 種類の動作が見られます。英数字キーの場合、「押された」イベントと「離された」イベントが交互に表示されます。矢印キーについては、「リリースされた」イベントのみが表示されます。繰り返しますが、1 ~ N-1 の「押された」イベントの後に「解放された」イベントが続くと予想していました。矢印キーの動作が英数字キーと異なるのはなぜですか?
私がやろうとしていることはQtで可能ですか?
qt - マウス イベントの決定: ホバーは子ウィジェットの親のままにします
親ウィジェットと子ウィジェットの 2 つのウィジェットがあります。
ウィジェットの実装にアクセスした場合、イベント ハンドラーを実装したり、ウィジェットを派生させたりせずred
に、カーソルがウィジェットからウィジェットにホバーする瞬間を判断することは可能red
ですか?blue
blue
赤い領域の厚さは明確に定義されています (例: 5px)。
qt - QML オブジェクト間でイベントを渡す
QML イベントを初期イベント ハンドラの途中で別の QML アイテムに渡したい状況があります。例えば
達成するために何ができpassEventToObject
ますか?
ノート:
Keys.onPressed
内部を変更するアクセス権がありませんitem2
。これは QML 組み込み (TextInput
) です。- イベントの受け渡しは、途中で発生する必要があります
item1.Keys.onPressed
qt - キューに入れられた接続のロギング
Qt 5.4 で構築された複雑な状態エンジン システムを使用しています (カスタム状態エンジン クラスを使用)。
そのコードの一部は、イベント、遷移などのログです。状態エンジンで何が起こっているかを完全に追跡できるように、エンジン/状態オブジェクトが受け取るすべてのイベントをログに記録することは非常に重要です。
ほとんどのイベント タイプでは、ロギングは簡単です。ただし、キューに入れられた接続 (つまり、メタ コール イベント) をログに記録できませんでした。QMetaCallEvent はプライベートなので、できることはあまりありません。しかし、そのような Qt の不可欠な部分が適切に検査できないとは信じがたいです。
キューに入れられた接続 (可能であれば、シグナル名、スロット名、送信者名、受信者名、および引数を含む) をログに記録できる方法はありますか?
c++ - ボタンを押して入力すると、QWidget は QEvent::MouseMove をトリガーしません
C++ を使用した Qt で、内部に小さな QWidget を含むウィンドウを作成しました。
小さな QWidget は、毎回QEvent::Enter
、QEvent::Leave
またはQEvent::MouseMove
トリガーされるたびにメッセージを表示します。
小さな QWidget の外側で任意のマウス ボタンを押した (押したままにした) 場合、マウスをこの小さな QWidget の上に移動すると (押したまま)、QEvent::MouseMove
この小さな QWidget に対してはトリガーされません。さらに、QEvent::Enter
マウス ボタンが離された後に延期されます。
逆の状況: マウスが小さな QWidget で押された (そして保持された) 場合、マウスが外側に移動するとQEvent::Leave
、マウス ボタンが離された後に延期されます。
QEvent::MouseMove
マウスボタンを押したままでも、常に取得するソリューションはありますか?
追加データ: はい、setMouseTracking(true)
設定されています。
テスト例:
ウィジェット:
主要
計画
c++ - Qt LanguageChange イベント - 新しい言語を見つける
changeEvent(QEvent* event)
receive type を使用し ている場合event->type() == QEvent::LanguageChange
、アプリの新しい言語に関する情報を取得するにはどうすればよいですか?
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()) ); ^
このボタンを終了ボタンにしたい。誰かが私を助けることができますか?