mi sono imbattuto in un problema che ho bisogno di mantenere i parametri del segnale sorgente mappato. Finora ho trovato solo esempi per mappare i segnali senza alcun parametro. Ad esempio, il fatto clic() del segnale:Come mantenere i parametri del segnale sorgente durante l'uso di 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)));
Tuttavia, avrei bisogno di mappare un segnale con i propri parametri, ad esempio, il segnale cliccato (bool), poi la SLOT bisogno di avere due argomenti DoStuff (bool, QString):
connect(taxFileButton, SIGNAL(clicked(bool)),
signalMapper, SLOT (map()));
connect(signalMapper, SIGNAL(mapped(QString)),
this, SLOT(doStuff(bool,QString)));
Tuttavia, non funziona in questo modo? C'è qualche problema?
Grazie!
Quindi non v'è alcun modo semplice per fare questo in Qt4 altro che attuare la mia stessa classe mapper? – Wang
Sarei felice di ottenere anche la via facile :). Per ora compito simile nel mio progetto è risolto nel modo in cui ho descritto per Qt4. –
Molto bello. Ne avevo bisogno per l'evento QLineEdit :: textEdited per mappare vari controlli in una struttura di dati dell'array (indici xey). Quindi ... connect (LineEdit, e QLineEdit :: textEdited, [questo] str (const QString &) {OnChanged (x, y, str);}); –