私は2つのパラメータを持つメソッドを書き込もうとしています. name Q_PROPERTY( char *) とQObject *関連する. 信号のシグネチャは、パラメータのタイプによって異なります。Q_PROPERTYvoid slot(QVariant)void method(QVariant)
Qt 5でそれを達成するにはどうすればよいですか? 無理かもしれませんが、わからないうちは探すのをやめません。
だから私は3つの解決策があると思います:
シグナル名からシグナルの正確なシグネチャのスロットを動的に構築し、古い Qt 接続方法を使用して、その中でメソッド (QVariant) を呼び出します。
connect(sender, SIGNAL (valueChanged(QString,QString)), receiver, SLOT (updateValue(QString)) );新しい Qt 5 接続システムを使用:
connect(sender, &Sender::valueChanged,receiver, &Receiver::updateValue );QVariant で使用できるすべてのスロット シグネチャを構築します。
ただし、最初のソリューションで指定されたメソッドを呼び出すスロットを動的に構築する方法はわかりません。QMetaMethod2 番目の解決策として、notifySignalから関数ポインタを取得する方法がわかりません。おそらく最後の解決策が最良の方法であり、簡単に達成できますが、少し極端です。
あなたはそれについてどう思いますか?