2

シグナルとスロットの両方にstd::stringタイプ パラメータがあります。私のシグナルはクラス b にあり、スロットはクラス A にあります。パラメーターの型を int に変更すると、シグナルは機能しますが、std::string で失敗します。この問題を解決する方法について何か提案はありますか?

これが私が使用するコードです

connect(this,SIGNAL(SignalB(std::string)),ClassA::PtrClassA,SLOT(MethodA(std::string)));
4

1 に答える 1

5

キュー接続を使用している場合はstd::string、メタ タイプとして登録する必要があります。Q_DECLARE_METATYPE(std::string)ヘッダーの 1 つで使用します。qRegisterMetaType<std::string>();コードの初期化で呼び出します。

詳細については、 QMetaType のドキュメントを参照してください。

于 2013-06-15T08:21:06.660 に答える