マップされたソース信号のパラメータを保持する必要があるという問題が発生しました。これまでは、パラメータを指定せずに信号をマップする例しか見つかりませんでした。 は例えば、クリックされた()シグナル:QSignalMapperの使用中にソース信号のパラメータを保持する方法は?
signalMapper = new QSignalMapper(this);
signalMapper->setMapping(taxFileButton, QString("taxfile.txt"));
connect(taxFileButton, SIGNAL(clicked()),
signalMapper, SLOT (map()));
connect(signalMapper, SIGNAL(mapped(QString)),
this, SLOT(readFile(QString)));
しかし、私はその後、スロットは二つの引数doStuffを(持っている必要があり、クリックされた(ブール値)信号、たとえば、独自のパラメータを使用して、いくつかの信号をマッピングする必要がありますbool、QString):
connect(taxFileButton, SIGNAL(clicked(bool)),
signalMapper, SLOT (map()));
connect(signalMapper, SIGNAL(mapped(QString)),
this, SLOT(doStuff(bool,QString)));
ただし、このように動作しませんか?何か回避策はありますか?
ありがとうございます!
私自身のマッパークラスを実装する以外に、Qt4でこれを行う簡単な方法はありませんか? – Wang
私は簡単な方法でも幸せになるでしょう:)。今の私のプロジェクトでは、Qt4で説明した方法で同様の作業が行われます。 –
とてもいいです。 QLineEdit :: textEditedイベントのために、さまざまなコントロールを配列データ構造(xとyのインデックス)にマップする必要がありました。それで... connect(lineEdit、&QLineEdit :: textEdited、[this](const QString&str){OnChanged(x、y、str);}); –