問題タブ [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 投票する
3 に答える
1383 参照

qt - メインのループによってブロックされたQtシグナルとスロットメカニズム

次のような状況があります。

  • ループ内のメインで2 つSocketのオブジェクトが作成されます (元の問題には 1000 個のオブジェクトがあります)。作成時にメソッドが呼び出されます。forstart()
  • start()QTcpSocketホストに接続しようとする を作成します。
  • Socketconnected()QTcpSocket からのシグナルをキャッチし、デバッグ出力を出力するスロットがあります。

時系列で最初にすべてのSocketオブジェクトが作成され、その後ソケットが開始されます。デバッグ オプションの出力例を次に示します。

コード:

ドキュメントに次のように記載されているため、これは私が期待した動作ではありません。

シグナルが発行されると、それに接続されているスロットは、通常の関数呼び出しと同じように、通常すぐに実行されます。これが発生すると、シグナルとスロットのメカニズムは、GUI イベント ループから完全に独立します。

質問:

シグナルが送信されたときにスロットが「すぐに」(メインのループが終了した後だけでなく) 実行されるようにするにはどうすればよいですか?


私が現在見ている唯一の解決策(新しいスレッドを導入せずに)

この場合、シグナルとスロットの使用をやめ、すべてをstartメソッドに実装します。このようなもの:

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

c++ - QObject接続機能

他の同様の質問を確認して解決策を試しましたが、うまくいきません。

基本的に、投稿リクエストのみを行うhttpクライアントを作成しようとしています。これを行うには、QNetworkManagerの終了信号を何らかのコールバック スロットに接続する必要があります。

これが私のコードです。

h ファイル:

cpp ファイル:

ご覧のとおり、スロットは確実に存在し、ヘッダー ファイルのパブリック スロットの下で宣言されています。だから、なぜこれが起こっているのか分かりません。私はすでにクリーンアップ、qmake の実行、および再構築を試みました。

エラーメッセージは次のとおりです。

"QObject::connect: No such slot QObject::finishedSlot(QNetworkReply *)"

何か案が?

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

c++ - 基本クラスから継承されたシグナルによって Qt UI スロットが呼び出されない

私はばかげた問題に出くわしています.Qtは初めてです。

基本クラス ( BaseSampler )からシグナルを継承するクラス ( SoundSampler )があり、このシグナルは UI コンストラクター ( MainWindow ) で UI のスロット ( sampleAvailable() ) に接続ます

問題:

接続が適切に行われたとしても ( UI クラスでconnect()が true を返し、 SoundSamplerクラスでisSignalconnectedも true を返す)、スロットが呼び出されることはありません。................................................................... ................................................

これが私のコードです(要点に合わせてトリミングされています):

ベースサンプラー

サウンドサンプラー

................................................................... ................................................

メインウィンドウ

................................................................... ................................................

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

c++ - Qt:シグナルが発行されたときにシグナルハンドラが呼び出されない

私はこのようなことをしています:

SIGNAL がいつトリガーされるかについての提案は、SLOT が呼び出されません。メニューが表示される場所は次のとおりです。

SLOT が呼び出されない理由について何か提案はありますか?

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

c++ - Qt: QObject::connect で複数の接続タイプを指定する

複数の接続タイプを指定できるかどうか知りたかったのです。たとえば、接続タイプをキュー接続と一意の接続にしたいと考えています。1つのステートメントでそれを指定することは可能ですか?

アップデート :

ポスターの提案に従って:

使用してみ Qt::QueuedConnection | Qt::UniqueConnectionましたが、得られます

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

c++ - QPushButton の使用法

私のアプリケーションには2つのボタンと1つの関数があり、特定のボタンをクリックすると特定のパラメーターを取り、その値で実行され、別のボタンをクリックすると関数は別のパラメーターを取り実行します。これらはすべて動的に行われます。機能とボタンは別のクラスです。

どこで信号を発する必要がありますか? そして、それをオーバーライドする方法は?

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

c++ - Qt が私のスロットを認識しないのはなぜですか?

次のコードを使用して、コンテキスト メニューをツリーに追加しようとしています。

ただし、これを実行すると、次のエラーが発生します。

私は何を間違っていますか?