問題タブ [qt-events]

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 に答える
1183 参照

c++ - ノンブロッキング方式でQDialogを開く

私はこのように開くQDialogを持っています:

ダイアログは問題なく開きますが、残念ながら、openDialog()を呼び出したときに、ダイアログを閉じた後でも「HelloWorld」は出力されません。ただし、後でまったく関係のない別のファイルダイアログを開くと、メッセージが出力されます。

別のダイアログが開くまでダイアログがブロックされる原因は何ですか?this->dialog->exec();またはを使用している場合も同じことが起こりthis->dialog->show();ます。

MyModule::openDialog()それはボタンのクリックイベントに接続されているスロットであることに注意する価値があるかもしれません。

何か案は?

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

qt - Qtでのイベント伝播

QtイベントシステムQEventクラスに関するドキュメントだけです。QObject::event()メソッドの動作に興味があります。ドキュメントには次のように記載されています。

この仮想関数はオブジェクトへのイベントを受け取り、イベントeが認識されて処理された場合はtrueを返す必要があります。

メソッドfalseから返されるときに期待される動作は何ですか?event()イベントを処理するために他に何が試みられますか?イベントは自動的に親オブジェクトに転送されますか?

:ソースが利用可能であることはわかっていますが、コピーはあります。私は理想的には、この動作に対処するドキュメントを探しています。

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

qt - QT Mobile: QT Mobile アプリケーションで .swf ファイルを再生する方法

QT モバイル アプリケーションで .swf ファイルを再生する方法。?

以下の 2 つの ui->webView->settings()->setAttribute(QWebSettings::PluginsEnabled,true); を適用したので、ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);

しかし、まだ .swf ファイルを再生できませんでしたか?

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

c++ - ホバー イベントの使用

でホバー入力イベントとホバー離脱イベントをキャプチャするのに問題がありますQGraphicsRectItem

私はこのオブジェクトをサブクラス化し、hover enter および hover leave ハンドラーを再実装しました... または、少なくとも実装したと思います。また、コンストラクターでホバー イベントの受け入れを true に設定します。

ただし、イベントが発生することはありません。ハンドラ内のブレークポイントはヒットしません。

クラスは次のとおりです。

私が間違っているのは何ですか?

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

qt - indexWidgetsのQListViewにeventFilterをインストールする

いくつかのコンポーネント(コンボボックス、lineEdit、labelsなど)を含むcustomWidgetsがあります。このcustomWidgetはsetIndexWidget(QModelIndex、QWidget)を使用してQListViewに追加されます。私の要件は、customWidgetの任意のコンポーネントをクリックするとQListViewアイテムが取得されることです。選択/フォーカス。

cutomWidgetからQListViewにEventFilterをインストールするにはどうすればよいですか?customWidgetのイベントフィルターをインストールしました。

ありがとう

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

c++ - QtQGraphicsViewイベント

View自分を組み込んだクラスがありますが、QGraphicsView継承に問題があります。私のコードは次のとおりです。

そしてGameから継承しViewます:

paintEventクイックcoutインで実装しましたgame。コンパイルすると、すべてが正常にコンパイルされますが、実行すると、純粋仮想関数が呼び出されたことを示すメッセージが表示され続けます。

私のViewコンストラクターは次のようになります。

どんな助けでも大歓迎です。

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

qt - PysideQgraphicsSceneはマウスイベントをキャプチャできません

マウスイベントをシーンにアタッチする方法が見つかりません。[表示]を使用しない場合、すべてのイベントがキャプチャされますが、コメントアウトすると、mousePressEventのみが機能します。助けてください。

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

c++ - Qt GUI イベントの記録と再生

Qt GUI イベントを記録し、スクリプトから再生するためのシンプルで軽量なシステムを実装しようとしています。これは Qt のイベント システムの魔法を使えばかなり簡単だと思っていましたが、理解できない問題に直面しています。

ここに私がやっていることの簡単な要約があります:

録音:

QApplication.instance().eventFilter()は興味のあるすべての GUI イベントをキャプチャし*、Python スクリプトに保存します。各ステップは次のようになります。

再生:

上記のスクリプトをワーカー (非 GUI ) スレッドで実行するだけです。(モーダル ダイアログ イベントループの実行中に「メイン」イベントループがブロックされても、スクリプト化されたイベントをアプリケーションに送信し続けたいため、GUI スレッドを使用できません。)

重要なことは、次のpost_event()2 つのことを行う必要がある関数で発生します。

  • まず、電話QApplication.postEvent(obj, recorded_event)
  • すべてのイベントの処理が完了するまで待ちます:**
    • 実行中の同じイベントループに特別なイベントを投稿objします。
    • 特別なイベントが処理される場合:
      • 電話QApplication.processEvents()
      • 続行しても問題ないことを再生スレッドに伝えるフラグを設定します

2 番目の部分が完了した後、特別なイベントが記録されたイベントの後にキューに入れられたため、最初の部分 (記録されたイベント) のすべての効果が完了したことを期待しています。

システム全体は、ほとんどの場合、マウス イベント、キー イベントなどで問題なく動作しているように見えます。しかしQAction、メインのイベントを再生しようとすると、ハンドラーに問題が発生しますQMenuBar

何を試しても、アイテムをクリックした結果として生じるすべてのハンドラーの完了のために、再生スレッドを強制的にブロックすることはできないようです。QAction.triggeredQMenu私が知る限り、ハンドラーが完了する前QApplication.processEvents()に戻っています。QAction

および/またはの通常のルールを破るQMenuウィジェットまたはシグナルについて何か特別なことはありますか? ハンドラーの完了をブロックする方法が必要です。QActionQApplication.postEvent()QApplication.processEvents()QMenuQAction

[*] すべてのイベントが記録されているわけではありません。私はイベントのみを記録し、他のいくつかのタイプ (イベントや通常のマウスの動きなど)spontaneous()も除外します。Paint

[**] スクリプト内の次のイベントは、前のイベントによって作成されたウィジェットを参照する可能性があるため、これは重要です。

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

qt - Qt内部ヘッダーを使用せずにQEventsを圧縮するには?

投稿されたイベント リストを反復するために必要なヘッダーはQCoreApplication::compressEventプライベートと見なされるため、Qt の内部ヘッダーに依存せずに同等の機能を取得する方法はありますが、Qt の文書化されたセマンティクスのみに依存しますか?

これは、シグナルとスロットに関する他の質問とはの質問であることに注意してください。