マップされたソース信号のパラメータを保持する必要があるという問題が発生しました。これまでのところ、パラメータなしで信号をマッピングする例しか見つかりませんでした。たとえば、clicked()シグナルは次のとおりです。
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)));
ただし、clicked(bool)シグナルなど、独自のパラメーターを使用してシグナルをマップする必要がある場合、SLOTには2つの引数doStuff(bool、QString)が必要です。
connect(taxFileButton, SIGNAL(clicked(bool)),
signalMapper, SLOT (map()));
connect(signalMapper, SIGNAL(mapped(QString)),
this, SLOT(doStuff(bool,QString)));
しかし、それはこのようには機能しませんか?回避策はありますか?
ありがとう!