問題タブ [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 に答える
3178 参照

python - Qt: 複数のシグナルを待つ方法は?

PySide と Qt を使用して、ある種の GUI テスト ライブラリを開発しています。これまでのところ、テスト ケースで 1 つの条件 (シグナルやタイムアウトなど) が発生するのを待つ必要がある場合は非常にうまく機能しますが、私の問題は、データ検証に進む前に複数の条件が発生するのを待たなければならないことです。

テスト ランナーは、メイン スレッドをあまり妨害しないように、独自のスレッドで動作します。シグナル/タイムアウトの待機はイベント ループで発生します。これはうまく機能する部分です (簡略化された例)。

待機は同期的でなければならないため、イベント ループが有効ですが、複数のシグナルに対しては機能しません。もちろん、複数の条件のいずれかを待つことは可能ですが、複数の条件/シグナルがすべて発生するのを待つことはできません。それで、これをどのように進めるかについて何かアドバイスはありますか?

受信したシグナルの数をカウントし、必要な数に達すると ready() シグナルを発行するヘルパー クラスについて考えていました。しかし、これは本当に最善の方法でしょうか?ヘルパーは、特定のシグナルの「インスタンス」が 1 つだけ考慮されるように、各送信者もチェックする必要があります。

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

qt - QMainWindow から既存の QMainWindow を開く

少し質問があります - ボタン付きの QMainWindow があります。そのボタンをクリックすると、既存の QMainWindow が開きます (詳細: QWT Plot でウィンドウを開きたいです。QWt の refreshtest プロジェクトの例を意味します)。

したがって、既存のウィンドウをボタンで開きたいと思います。新しい QMainWindow を開くことができた限りですが、プロジェクトの refreshtest から MainWindow を表示するにはどうすればよいですか?

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

qt - QSerialPort を使用したシリアル ポートからの読み取りでのトラブル

組み込みの FriendlyARM ベースのプロセッサ システム用の C++ プログラムを開発する必要があります。デスクトップコンピュータには Qt Creator 3.0.0 (Qt 5.2.0 ベース) を使用しています。私のプログラムは、Mini2440 FriendlyARM プロセッサのシリアル ポートから読み取ることができるはずです。

ターゲット システム (組み込みシステム) に移動する前に、ラップトップのシリアル ポートの読み取りと書き込みを試みました。私の主な問題は、シリアルポートから読み取る方法です。ご存知のように、新しいコンピュータやラップトップにはシリアル ポートがありません。そのため、手作りの USB-シリアル アダプタ ケーブルを使用して、シリアル ポート プログラミングをシミュレートしようとしています。USBシリアルケーブルを差し込むと、Ubuntuでは「/dev/ttyUSB0」として認識されます。うまくいきそうです。ケーブルのもう一方の端 (シリアル ポート) はどこにも接続されていないことに注意してください。

私の最初の質問は次のとおりです。このようにケーブルを構成しても問題ありませんか、それとも他のデバイスに接続する必要がありますか? 10 秒ごとに /dev/ttyUSB0 に書き込み、データを読み取ろうとします。私は次のコードになりました:

シリアルポートへの書き込みはOKです。しかし、読み込み時に「そのようなファイルやディレクトリはありません」という問題が発生することがあります。ときどき「ファイルが一時的に利用できません! 奇妙なことに、notifAreaPort.error() は 0 を返します。これは、エラーが発生していないことを意味します!

考え?

-- サイード・アムローラヒ・ボヨウキ

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

c++ - Qt Signals & Slots: 変更されたデータを取得するにはどうすればよいですか?

QStandardModel があります。そのitemChangedシグナルを自分のスロットに接続します。

スロットは次のようになります。

pushButton のテキストが「change」に変わるので、私のスロットは機能しているようです。ただし、 item->data().toString() は常に空です。

どうすればこれを正しく行うことができますか?

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

qt5 - QAction アイテムのリストに QSignalMapper を使用する方法

サブメニュー項目リストをクリックしたときに、同一ではなく同様のアクションを実行するコードスニペットを開発しています。添付のスナップショットを確認してください。QSignalMapper は、複数の信号を同じスロットに接続するための最適なソリューションです。

Area Threshold サブメニューの値がクリックされるたびに、同様のアクションを実行したい

しかし、どの信号がどのスロットに対して呼び出されるのか、正確に配置することはできません。QSignalMapperに関する多くの理論を読みましたが、

彼らのコードを実装しました。上記のサンプル プログラムとは異なり、私の QAction オブジェクトは、配列内の要素を定義するように定義できないようです。なぜなら、それらの名前はデザイン ウィンドウによって自動生成されたからです。 qAction オブジェクトの名前は、それ自体が連続していないため、for ループに配置できません。

ここでSIGNALとして何を配置すればよいのか、setMapping関数をいつ使用すればよいのかわかりません。setMapping 関数を使用する場合、どのパラメーターを実装する必要がありますか? 私は単に概念を完全に理解しておらず、何をすべきか、誰に尋ねるべきかを知らず、ここで私のコードで間違いを犯しています. 私が間違っていることを教えてください。彼が同様の問題を抱えていたので、参考のためにこれをチェックしました:

************************************更新されたセクション ('14 年 3 月 3 日現在)**** ****************************************************** ******************

私の問題は、次の質問とよく似ています: QActions のリストを QMenu に追加し、それらを単一のスロットで処理するにはどうすればよいですか?

私も で setData を使用してみましたhelpAction(QAction *pAction)が、エリアしきい値サブメニューのアクション項目をクリックしたときに得られる唯一の値は

私の更新された質問は、 を使用setData(const QVariant &userData)してアクション アイテムにインデックスを割り当てる方法です。お知らせ下さい。

メインウィンドウ.h

メインウィンドウ.cpp