[gelöst] QCombobox zur Laufzeit füllen

Alles rund um die Programmierung mit Qt
Antworten
toba
Beiträge: 28
Registriert: 22. September 2011 09:28

[gelöst] QCombobox zur Laufzeit füllen

Beitrag 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
Zuletzt geändert von toba am 8. November 2011 10:42, insgesamt 1-mal geändert.
ceumern
Beiträge: 28
Registriert: 16. September 2011 11:25

Re: QCombobox zur Laufzeit füllen

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: QCombobox zur Laufzeit füllen

Beitrag von upsala »

Das wäre auch noch eine Möglichkeit:
void QComboBox::setModel ( QAbstractItemModel * model )
QSqlQueryModel
toba
Beiträge: 28
Registriert: 22. September 2011 09:28

Re: QCombobox zur Laufzeit füllen

Beitrag 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
Antworten