Moin, also ich habe eine QComboBox, welche ich über setModel mit Daten versorge.
Klappt auch wunderbar, allerdings ist im Hintergrund eine Datenbank, so das ich eigentlich nicht bei der Auswahl den Text will, sondern dessen ID, welcher über das Model ja auch erhältlich wäre.
Mit currentIndex erhalte ich aber wohl nur den Index der ComboBox, mit currentText den selektierten String.
Daher die Frage, komme ich irgendwie an die ID des selektierten Wertes über das Model heran?
Oder dient das Model hier nur zum Füllen der Box?
Gibt es evtl. hierfür ein anderes besseres Widget als die QComboBox?
QComboBox mit Model: wie auf Selektion zugreifen?
dein View hat auch ein selectionModel, der sollte dir weiter helfen
hilft das weiter?
QModelIndexList selectedIndexes = myView.selected.indexes();
QStandardItemModel *model = dynamic_cast<QStandardItemModel*>(combo->model());
schliefe ...
QModelIndex index = selectedIndexes.at(i);
QStandardItem *myItem = model->itemFromIndex(index);
hilft das weiter?
QModelIndexList selectedIndexes = myView.selected.indexes();
QStandardItemModel *model = dynamic_cast<QStandardItemModel*>(combo->model());
schliefe ...
QModelIndex index = selectedIndexes.at(i);
QStandardItem *myItem = model->itemFromIndex(index);
Also das Hilft nur Bedingt weiter, weil ich die Models hier nur zum Zugriff auf die Daten nutze.
Einen eigentlichen View auf das Modell gibt es nicht, die Auswahl ist ja in der QComboBox.
Welche ich mit setModel halt mit Daten versorge.
Aber, moment, QComboBox hat ein view(), da komme ich an ein SelectionModel heran, mal sehen...
falls mal jemand das auch machen muss, so gehts:
Getnodes() gibt ein QSqlTabelModel* zurück.
Würde das auch einfacher gehen?
Einen eigentlichen View auf das Modell gibt es nicht, die Auswahl ist ja in der QComboBox.
Welche ich mit setModel halt mit Daten versorge.
Aber, moment, QComboBox hat ein view(), da komme ich an ein SelectionModel heran, mal sehen...
falls mal jemand das auch machen muss, so gehts:
Code: Alles auswählen
QModelIndexList mil = m_ui->cbx_source->view()->selectionModel()->selectedIndexes();
QModelIndex mi = mil.at(0);
QSqlRecord sr = graphdb_sql::SQLModel::instance().Getnodes()->record(mi.row());
Würde das auch einfacher gehen?
Code: Alles auswählen
void activated ( int index )
void currentIndexChanged ( int index )
void highlighted ( int index )
Ähm, das sind alles Methoden die nix zurückgeben.
Sicher auf ein entsprechendes Signal zu hören ist auch nicht schlecht, aber bringt mich momentan nicht weiter.
Ich will ja gerade von der ComboBox wissen, was im Model das nun ist.
Würde currentIndex() denn hier den korrekten row des Models zurückgeben?
Sicher auf ein entsprechendes Signal zu hören ist auch nicht schlecht, aber bringt mich momentan nicht weiter.
Ich will ja gerade von der ComboBox wissen, was im Model das nun ist.
Würde currentIndex() denn hier den korrekten row des Models zurückgeben?