私はむしろ別々の受信スロット機能を有するより アレイの個々の要素を変更するスピンコントロールのブロックは、私はちょうど信号でメッセージを送信し、制御を指定するために思っているQtのスロット
ことができますQSignalMapperでこれを行います - しかし、とにかく以下のようにしていますか?
spin0 = new QDoubleSpinBox;
connect(spin0,SIGNAL(valueChanged(double)),this,SLOT(handler(0,double));
spin1 = new QDoubleSpinBox;
connect(spin1,SIGNAL(valueChanged(double)),this,SLOT(handler(1,double));
....
private slot:
void handler(int element,double value);
しかし、受信者関数はGUIの詳細をたくさん知る必要があります。すべてのスピンコントロールオブジェクトにアクセスできる –
私はあなたに従うのか分からない。ハンドラーで、各スピンコントロールのオブジェクト名を "0"、 "1"などに設定した場合は、上記の内容を達成するために 'sender() - > objectName()。toInt()'を使用できます。ハンドラは、 'QObject'がシグナルを送信した以上のことを知る必要はありません。 'sender()'は、 'handler()'が存在するオブジェクトの関数です。すべてのスピンコントロールについて知る必要はありません。 –
okオブジェクト名を使用すると、それは良い解決です。私は送付者()を、あまりにも密接にハンドラーにguiを結合したspin0 ptrと比較することを考えていました! –