Passare un QWidget ad uno SLOT in Qt

Mattepuffo's logo
Passare un QWidget ad uno SLOT in Qt

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!


Condividi

Commentami!