Riempire una QComboBox da QMap
Oggi vediamo come riempire una QComboBox usando un oggetto QMap.
Vedremo anche come recuperare la chiave del valore selezionato (grazie al Qt forum per il suggerimento).
Vi posto tutta la classe, comprensive di intestazione:
#ifndef DIALOGADD_H
#define DIALOGADD_H
#include <QLineEdit>
#include <QFileDialog>
#include <QPushButton>
#include <QDebug>
namespace Ui {
class DialogAdd;
}
class DialogAdd : public QDialog {
Q_OBJECT
public:
explicit DialogAdd(QWidget *parent = nullptr);
virtual ~DialogAdd();
private slots:
void getSync();
private:
QMap<QString, QString> syncMap;
Ui::DialogAdd *ui;
};
#endif // DIALOGADD_H
Questa l'implementazione:
#include "dialogadd.h"
#include "ui_dialogadd.h"
DialogAdd::DialogAdd(QWidget *parent) : QDialog(parent), ui(new Ui::DialogAdd) {
ui->setupUi(this);
syncMap.insert("*", "Scegli Sync");
syncMap.insert("rsync -av --delete ", "Sincronizzazione");
syncMap.insert("rsync -av ", "Copia");
ui->comboBox->addItems(QStringList(syncMap.values()));
connect(ui->btnSalva, &QPushButton::clicked, this, &DialogAdd::getSync);
}
void DialogAdd::getSync() {
QString selValue = ui->comboBox->currentText();
QString selKey = (syncMap.cbegin() + ui->comboBox->currentIndex()).key();
qDebug() << selValue;
qDebug() << selKey;
}
DialogAdd::~DialogAdd() {
delete ui;
}
Ejoy!
c++ qt qcombobox qmap
Commentami!