問題タブ [qt-signals]

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

qt - QRect が別のものと交差するときにイベントを送信する

長方形の交差点に関する問題に直面しています。これまで、このために書かれたコードがないことに注意してください。問題を解決する方法を考えているだけです。では、行きましょう。私の SceneView には、シーン内で継続的に移動するQGraphicsPixmapItemsがいくつかあります。シーンの制限内でのみ移動するように、それらすべてをトラップしたいと考えています。

QGraphicsPixmapItems に信号を追加して、移動が発生するたびにシーンに通知するというアイデアがありました。そして、私のシーンでは、アイテムの 1 つがシーンレクトの範囲外になったときにアイテムに通知する別のシグナルを持つことができます。このアプローチの問題は処理です。動きが発生するたびに信号を発する場合、これはポーリングの特徴であり、これは望ましくありません。

QRect のメソッド intersected() と intersects() について知っています。しかし、繰り返しになりますが、移動が発生するたびに呼び出すのは良い考えではありません。この問題の良いアイデアを知っていますか?

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

c++ - qtシグナルの未定義の参照エラー

シグナルjoined(QString name)を作成したクラスサーバーがあります。join(QString name)という関数で呼び出しましたが、エラーが発生します

Server.o:関数Server::join(QString)': Server.cpp:(.text+0x48): undefined reference to Server :: joined(QString)'collect2:ldが1つの終了ステータスを返しました

これは私のヘッダーファイルがどのように見えるかです:

これは私のcppファイルです:

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

c++ - QPushButton 信号を QGraphicsView スロットに接続する際の問題

の信号QPushButtonを のスロットに接続できませんQGraphicsView

私のプッシュボタンヘッダー:

これをスロットでコンパイルするにはマクロが必要ですが、Q_Objectコンパイルすると、次のように vtable 参照が見つかりません。

マクロを取り出すと、問題なくコンパイルできますが、実行すると次のエラーが発生し続けます。

私のgame_controller拡張QGRaphicsViewとここにボタンを接続しようとしている私のコードがあります:

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

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

c++ - Qt:シグナルスロットが機能していません

メインのGUIと別のスレッドに移動された別のオブジェクトの間にSignalandSlotシステムを実装しようとしています...クラスデザインは次のようになります...残念ながら実装できません...

MainWindow.h

MainWindow.cpp

threadforDisplayは、次のようなdisplaythreadクラスへのポインタです。

displaythread.h

displaythread.cpp

display.h

display.cpp

出力:

受信した開始プロセス信号

ただし、プロセススロットを除いて、メインGUI、つまりMainWindowから信号が送信されたときに他のスロットが機能していません。これはmovetoThreadコマンドによるものですか。私が間違っているところのドンノ..

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

c++ - QTcpServerをサブクラス化する場合、newConnection()信号の送信を遅らせるにはどうすればよいですか?

SSLサーバーを作成したいので、QTcpServerをサブクラス化し、オーバーライドしますincomingConnection()。ここで、を作成しQSslSocket、その記述子を設定して、を呼び出しますQSslSocket::startServerEncryption。この時点で、シグナルが発信されるのを待つ必要があります。QSslSocket::encrypted()その後、サーバーがnewConnection()シグナルを発信する必要があります。クライアントコードは、QTcpSocketを使用していると見なしますが、実際には安全なソケットを使用しています。

ただし、QTcpServerは newConnection()呼び出し後に常に出力しますincomingConnection()QTcpServerのソースを調べました)。

だから私の質問は、自分で放出する準備ができるまで、放出を防ぐ方法はありますか?QTcpServernewConnection()

これが必要な理由は、クラスがQTcpServerを使用していることを認識しないコードによって、QTcpServerのドロップイン置換として使用できるようにするためです。したがって、QTcpServerとまったく同じように動作する必要があります。

SslServerクラスの私のコードは現在これです:

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

c++ - Qt信号を切断して後で再接続する

Qt信号を一時的に切断する方法はありますが、それに接続されているオブジェクトのリストを保存して、信号を後で再接続できるようにしますか?

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

c++ - QSignalMapper またはその他の方法で QMenu から QString を Qt スロットに渡す方法

多くのサブメニューを持つ QMenu があります。これらは動的に作成されます。つまり、名前メニューはデータベースから取得され、ループで作成されます。メニューがクリックされたときに同じスロットのtriggered()などを起動したかったのですが、メニュー固有のアクションを実行できるようにQStringメニュー名をスロットに渡す必要がありました。QAction * をトリガーされたイベントに渡し、setData を使用してみましたが、実行時エラーが発生しています

object::connect: そのようなシグナルはありません QAction::triggered(QAction *)

または、signalMapper がコンストラクターで初期化されたデータ メンバーである QSignalMapper も試しました。

2 番目のケースでは、エラーは発生しませんが、スロット関数 playChannel は呼び出されていません。誰かがそれを解決するのを助けることができれば本当に感謝しています.

更新 1:私が見た他の例との唯一の違いは、通常、人々は複数のウィジェットから単一のスロット(異なるボタンなど) に信号を接続していることです。私の場合、複数のサブメニュー (異なる名前) を単一のスロットに接続しています。これは違いを生むべきですか?

更新 2:以下の QSignalMapperのソリューションで提案されている修正後に機能しました。また、 SubMenu を setMapping の引数として使用していたという事実もあり、代わりに MenuAction アイテムを使用する必要がありました。しかし今、私はイベントを複数回発生させています。つまり、選択したサブメニューカテゴリのメインメニューにエントリがある回数だけです。チャネル タイプが英語 (メイン メニュー) で 4 つのエントリ)、HBO、スター映画など (サブ メニュー) で、HBO を選択した場合、イベントは文字列 HBO で 4 回発生します。サブメニューごとに個別のシグナルマッパーを作成すると、うまく機能します。しかし、私は単一のマッパーを使用することを望んでいましたが、ここで間違ったことをしています。回答へのコメントの詳細。

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

qt - javascriptにシグナルの再評価を強制しますか?

だから私は次のケースがあります:

QML ファイル:

JavaScript ファイル ( Script.js ) :

getSource を再評価する必要があることに基づいて、SomeQtObject にいくつかのシグナルがあるとします。これらのシグナルが発行されるたびに再評価されるように、これらのシグナルを javaScript getSource 関数にバインドするにはどうすればよいですか?

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

python - PyQt-QComboBox接続は確認されましたが、関数が呼び出されていません

PyQtを使用した信号/スロットの問題で少し問題があります。私のコードは以下のとおりですが、おそらく少し説明する価値があります。最初の2つのQObject.connect()はTrueを返すので、接続が確立されていることがわかります。ただし、comboBoxで選択を変更すると、関数getParametersが期待どおりに呼び出されません。ComboBoxに関連する他の信号をデバッグおよびテストするための以下の5つの接続。それらも期待通りにログを印刷しません。

接続を指定する新しい方法がある他の場所で読んだことから、これが問題になる可能性がありますか?もしそうなら、誰かが私にそのフォーマットの例を教えてもらえますか?ありがとう!

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

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

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