問題タブ [qtimer]
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.
c++ - どこからでもQtプログラムを終了するには?
私の例:
コメントの場所で、私はやろうとしました: qApp->exit() と qApp->quit() と this->close() (ただし、「これ」は表示されておらず、もちろん close() は機能していません)。コードの任意の場所からアプリを終了するにはどうすればよいですか?
コード全体:
main.cpp
メインウィンドウ.h
メインウィンドウ.cpp
ConnectionForm は、GUI を備えた単なる QDialog であり、追加のコードはありません。
c++ - ボタンを押した後にバックグラウンドループを停止するには?
私のプログラムでは、ウィンドウを開いて大きなループを実行します。で進行状況を表示しますQTextEdit
。大きなループを止めるキャンセルボタンを追加しました。
したがって、ウィンドウコンストラクターで、次のようなメソッドを実行します。
したがって、停止ボタンをクリックすると、スロットが実行されます
その方法の問題はprocessEvents()
、実行時間が少し遅くなりすぎることです..しかし、おそらくそれは避けられない..
シグナルとスロットで試してみたかったのですが、押された停止ボタンをループに接続する方法が思いつかないようです。
または、信号とスロットかどうかにかかわらず、誰かがこれを達成するためのより良い方法を持っているのでしょうか?
編集
このスレッドのアドバイスに従って、ワーカー/スレッドのシナリオができました。だから私はウィンドウコンストラクターにいます
これはうまくいくようです。しかし、どうすれば now を導入できQTimer
ますか?
QTimer
をスレッドのstart()
関数に接続する必要がありますか
または、スレッドをQTimer
のstart()
関数に接続する必要がありますか?
またはどちらでもない...しかし、どうやって?
c++ - スロットへのいくつかの QTimers 呼び出しをキューに入れる
私は、いくつかの処理を開始する (ジョブを実行するスレッドを開始する) トリガー関数を呼び出す必要があるライブラリを使用しており、すぐに戻ります。その後、処理が終了すると、シグナルが発行されます。
これは、さまざまなパラメータに基づいて定期的に行う必要があります。処理中にトリガー関数への他の呼び出しを実行してはならないため、何らかの方法でそれらをキューに入れる必要があります。QEventLoop (「ループ」) を使用することを考えましたが、今のところ運がありません。
このコードを見てください:
問題は、処理中に loop.exec() が呼び出されると、次のメッセージが表示されることです。
私が意図したことを行う正しい方法は何ですか?
前もって感謝します。
c++ - ワーカースレッドの QTimer
をWorker
使用して配置されている別のスレッドで何らかの作業を行うクラスがありmoveToThread()
ます。メソッド内では、タスクにかかる推定時間に基づいて、進行状況の更新を発行することになっているWorker::doWork()
も作成します。QTimer
次に例を示します。
現在、これは意図したとおりに機能しません。スロットは、作業が完了した後updateProgress()
にのみ呼び出され始めます。
c++ - QTimerの仕組み
timer
が のオブジェクトで、タイマーQTimer
の間隔が でiInterval
、タイマーのタイムアウト信号がスロット に接続されているとしsltTimeout()
ます。
iInterval
実行にかかる時間よりも小さい場合はどうなるかを考えていsltTimeout()
ました。その結果、複数のスレッドが実行sltTimeout()
されますか? その場合、オブジェクトへの非同期アクセスで問題が発生する可能性があります。
誰でもそれを明確にできますか?
c++ - QTimer: タイマーは QThread で開始されたスレッドでのみ使用できます
私と同じ問題を抱えている人を見たことがありますが、解決策はうまくいきません。
これが私のコードです:
10ミリ秒ごとにUDPフレームを送信するプログラムを書いています。私のプログラムがどのように動作するかは次のとおりです。
私は持っていclient class
ます:
次に、これを私の中で使用しますmain
:
タイマーが機能しないのはなぜですか? 他の場所で起動する必要がありますか?
ありがとう。