特定のシグナルのラベル画像を変更するメソッドを持つ親クラスがあります。たとえば、QComboBox で何かが発生した場合... (valueChanged、アクティブ化)
class parentClass : public QMainWindow
{
Q_OBJECT
...
public slots:
//this is the slot i want to connect to some signal of
//e.g a combo box to change the picture by passed in string
void changePicture(QString fileName);
それから私はこの子供を持っています:
class childClass : public QObject
{
Q_OBJECT
public:
childClass(parentClass *parent, QTabWidget *tab, QStringList *guards=0);
private:
bool readCombo(QXmlStreamReader *xmlreader);
今、readCombo
私は文字列を読み取り、それを渡して画像を変更したいと考えています:
QString imageFileName = xmlreader->attributes().value("image").toString();
QSignalMapper * signalMapper = new QSignalMapper(parent);
//this is just one of many trials to get this working, i hope you get the picture
connect(combo , SIGNAL(activated(int)), parent, SLOT(changePicture(QString *)));
signalMapper->setMapping(combo, imageFileName);
しかし、これによりNo such Signal
、No such Slot
または大文字のいずれかが得られますIncompatiple sender/receiver arguments
構文は実際には直感的ではなく(imo)、私のケースで機能している適切な参照が見つからないため、これに関する助けをいただければ幸いです(尋ねる前に試行錯誤を繰り返しました)