問題タブ [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++ - QTimer のリセット時に別のイベントをトリガーする
QTimer を使用して信号機の画像を表示する小さなプログラムを作成しています。だから私は自分のタイマーをセットアップし、すべてがうまくいきます。しかし、タイマー間隔に達するたびにロボットライトを ->show() および ->hide() にする方法がわかりません。私はこれをすべて間違っている可能性があります。私はまだ学んでいるので、アドバイスしてください。
メインウィンドウ.h
メインウィンドウ.cpp
また、タイマーが 2 回実行されないように、クリックしたときに [開始] ボタンを無効にします。
したがって、メインのウィンドウ UI には、基本的にユーザーの入力を受け取るスピンボックスがあります。これは、それを Qtimer に渡す時間です。次に、間隔で表示および非表示にする必要がある赤、緑、黄色の 3 つの画像があります。 . それで、ほとんど手動ループのようなものを作成しました。Qtimer が起動して緑を表示し、次に ShowYellow スロット、次に showRed スロットに移動するため、ここでは、緑のスロットに移動してから黄色に移動することを想定していますが、再び緑に移動することはありません。
誰か教えてください。
c++ - singleShot(true) を使用して、実行中の QTimer を次のショット後に停止させることはできますか?
QTimer
トリガーとなる定期的なイベントがあります。
いくつかの特別な信号を最後のイベントに同期させたいので、タイマーを直接停止したくありません。
次のショットがシングル ショットになり、次のショットの後にタイマーが停止するように設定することで、setSingleShot(true)
これを達成できますか?QTimer
編集:
うまくいくようです。しかし、setSingleShot(true)
アトミックではないようです。タイマーが停止する前に、2ショットを観察することがあります。
c++ - QThread を終了するときに、内部 QTimer が正しいスレッドから強制終了されない
QGraphicsSimpleTextItem を作成する QThread があります。アプリケーションを閉じると、スレッドを終了してから終了しようとします。
QGraphicsSimpleTextItem::setFont()
スレッドに呼び出しを追加するまで、すべて問題ありません。そうすると、Qt の内部 QFontCache システムが呼び出され、(私のスレッドから) QTimer が開始されます。次に、QThread を終了すると、Qt がイベント ループをクリーンアップするときに (メインから) killTimer が呼び出され、エラーが発生します。
この問題を回避するにはどうすればよいですか? これはフォント キャッシング メカニズムのバグと考えるべきではないでしょうか。ご協力いただきありがとうございます。
qt - Window Manager オブジェクトのすべてのハンドルを使い果たす QTimer
QTimer
関数への繰り返し呼び出しをトリガーするために を使用していますが、最終的に次のエラーでクラッシュしました
このリンクに記載されているように、タイマー オブジェクトはこれらのハンドルを使用します。これを止める方法はありますか?私のプログラムは、再起動せずにユーザー入力なしで常に実行する必要があり、システム許容量を増やすと (一部の人が示唆しているように)、クラッシュを防ぐのではなく、クラッシュを遅らせるだけのようです。
タイマーコード
タイマーは他の場所では再作成されません。
c++ - 現在の時間変数を渡す
QTimer を使用して 5 秒ごとに現在の時刻を表示するテキスト編集ボックスを取得しようとしています。別のメソッドで現在の時刻を計算してから、QTimer にそのメソッドを呼び出して現在の時刻を表示させています。setCurrentTime メソッドから QTimer に変数を渡す方法を一生理解できません。それは本当に簡単な修正だと確信していますが、私はそれを理解できません。これが私のコードです。
timeout - QTimer が起動しない (トリガー) タイムアウト
Qtimer を使用して、特定のコード ブロックの実行を一時停止し、別のスレッドで別の処理を実行したいと考えています。qeventloop quit でスレッドのタイムアウトを接続しましたが、問題はタイムアウトが呼び出されないことです。別のエミットが発生すると、タイムアウトが魔法のようにトリガーされるか、別の接続を追加するとタイムアウトもトリガーされます。qtimer、qeventloop、qthread の使用について、何かが欠けていると思います。誰でも助けることができますか?テスト用に基本的なコードを抽出し、ここに配置しました。
main.cpp
tim.h
ティム.cpp
//widget.h をテストするための GUI
ウィジェット.cpp
qt - モーダル QDialog は引き続きタイマーがスロットを呼び出すことを許可しますか?
私のQtプログラムには、QDialogs
すべてを停止し、コードが破棄されるまでコードの実行を継続しないモーダルがあります。そして、それが入っている関数で機能します-コードの次の行にブレークポイントを配置しましたがqDialog::exec()
、ダイアログを閉じるまでブレークポイントは壊れません。
ただし、QTimer
タイムアウト時にスロットに接続された があり、モーダル ダイアログが起動していてもスロットでコードを実行し続けます。
を表示する前にタイマーを停止できると思いますmodal dialog
。ただし、ダイアログがタイマーとはまったく異なるクラスにある場合があります。QDialog
が破棄されるまでプログラムの実行を本当に停止する方法はありますか?
例:
出力にはまだ「モーダル中に会いましょう?」と表示されます。中にexec()
;
c++ - 独自の QTimer と QThread を持つカスタム クラス
ロボットのセンサー用のいくつかのプロジェクト用に、独自の QTimer と QThread を持つクラスを作成したいと思います。色々検索したらこんなの出てきた
このエラーが発生しています