Passare un QWidget ad uno SLOT in Qt
Nella mia interfaccia create in Qt, ho due QLineEdit e due QPushButton.
Entrambi i bottoni avviano un QFileDialog per la scelta di una cartella; ma a seconda di quale bottone viene cliccato, devo riempire una QLineEdit piuttosto che l'altra.
Quindi, prima di tutto abbiamo un metodo del genere:
void DialogAdd::setDir(QLineEdit *txt) {
QString dir = QFileDialog::getExistingDirectory(this, tr("Scegli directory"),
QDir::homePath(), QFileDialog::ShowDirsOnly);
txt->setText(dir);
}
Adesso dobbiamo impostare le connect dei due bottoni passandogli la QLineEdit corretta.
La soluzione mi è stata data dal forum Qt:
connect(ui->btnSource, &QPushButton::clicked, this,
std::bind(&DialogAdd::setDir,this,ui->txtSource));
connect(ui->btnDestinazione, &QPushButton::clicked, this,
std::bind(&DialogAdd::setDir,this,ui->txtDestinazione));
Enjoy!
qt qwidget connect slot
Commentami!