Seite 1 von 1

[gelöst] QCombobox zur Laufzeit füllen

Verfasst: 3. November 2011 09:43
von toba
Hi,

habe ein QMainwindow, auf dem einige QComboBox 'en sind. Diese werden direkt beim Starten des Programmes zusammen mit dem Layout erstellt. Nun will ich, diese mit Daten (QStrings) aus einer SQL Datenbank füllen. Mein Problem ist, das diese nur einmal, beim Übersetzen, befüllt werden, und wenn sich nun die Daten in der Datenbank ändern, aber trotzdem gleich bleiben.
Die Möglichkeit z.B. einen Button "Werte einlesen" möchte ich eigentlich umgehn, sondern diese jedesmal beim Programmstart automatisch einlesen.

Steh grad ein wenig auf dem Schlauch, habe auch noch nie mit Datenbanken gearbeitet.
Hier gibts doch bestimmt irgendeinen Standart wie soetwas umgesetzt wird?

mfg

Re: QCombobox zur Laufzeit füllen

Verfasst: 3. November 2011 16:35
von ceumern
Naja, wenn du zur Laufzeit die Daten aus der Datenbank holst, wirst du diese bestimmt auch irgendwie in QStrings umwandeln können und kannst dann mit

Code: Alles auswählen

QComboBox::addItem ( const QString & text, const QVariant & userData = QVariant() )
deine comboBox befüllen.

Das ganze packst du dann in den den Konstruktor und schon wird deinen comboBox beim Programmstart befüllt.

Wenn deine Frage auf das Auslesen der Datenbank abzielt, schau dir mal die Klassen an:

http://doc.qt.nokia.com/latest/qsqldatabase.html
http://doc.qt.nokia.com/latest/qsqlquery.html

Re: QCombobox zur Laufzeit füllen

Verfasst: 3. November 2011 16:49
von upsala
Das wäre auch noch eine Möglichkeit:
void QComboBox::setModel ( QAbstractItemModel * model )
QSqlQueryModel

Re: QCombobox zur Laufzeit füllen

Verfasst: 8. November 2011 10:41
von toba
Ok, muss wohl irgendein Fehler im sqldriver gewesen sein? Hab die neuste SDK Version mit QT 4.7.4 heruntergeladen, und nu gehts zur Laufzeit ohne irgendwelchen extra Code...
Oder ich hab irgendwo anderst nen Bock geschossen..

Trotzdem danke