Qt 4.5.1 ui-form in Qt 4.8.1 verwenden

Alles rund um die Programmierung mit Qt
Antworten
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

Qt 4.5.1 ui-form in Qt 4.8.1 verwenden

Beitrag von Tuxing »

Hallo zusammen,

ich habe ein dringendes Problem. Und zwar habe ich versucht ein UserInterface aus einen alten Programm nochmals zu verwenden. Die alte ui-form ist mit Qt-Version 4.5.1 erstellt worden. Jetzt verwende ich Qt Version 4.8.1:

Das Problem das ich habe macht sich besonders bei der Verwendung der Comboboxen bemerkbar: Wenn ich im Code einen Index festlege

Code: Alles auswählen

 ui->combox->setCurrentIndex(2);
Dann wird dieser einfach nicht übernommen. Die ComboBox zeigt unverändert den Eintrag mit dem Index 0. Bei dem alten Programm hat die Form mit dem entsprechenden Code fehlerfrei funktioniert. Jetzt kompiliert und linkt alles noch richtig aber die Codesegmente haben scheinbar keinen richtigen Einfluss mehr die Combobox.

Danke schonmal für hilfreiche Anregungen.

Tuxing
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt 4.5.1 ui-form in Qt 4.8.1 verwenden

Beitrag von Christian81 »

Ohne Code... naja wie immer. Und nein das geht normalerweise.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

Re: Qt 4.5.1 ui-form in Qt 4.8.1 verwenden

Beitrag von Tuxing »

Hier ein Codebeispiel:

Code: Alles auswählen


void MainWindow::LoadMask()
{  
    // Abfrage der Datenbank
    QSqlQuery query(myManager->getDatabase()->returnDatabase());
    QString tmp = "SELECT * FROM table WHERE Person='";
            tmp += myManager->getUser()->getUsername();
            tmp += "' AND Vorname='";
            tmp += myManager->getPatient()->getForename();
            tmp += "' AND Nachname='";
            tmp += myManager->getPatient()->getSurename();
            tmp += "'";

    query.prepare(tmp);


    if( query.exec() )
    {
        query.next();

        myManager->getPatient()->setForename(query.value(5).toString());
        myManager->getPatient()->setSurename(query.value(6).toString());

        // Datum und Betreuer werden korrekt gesetzt
        ui->lBetreuer->setText(query.value(2).toString());
        ui->lDatum->setText(query.value(3).toString());

        // Die ComboBox, die das Geschlecht angeben soll, ändert den Wert nicht
        ui->cBGeschlecht->setCurrentIndex(query.value(4).toInt());
   }
}
query.value(4).toInt() habe ich mir bereits ausgeben lassen und es ist definitiv eine Zahl. Wie gesagt funktioniert der Code erfolgreich mit Qt 4.5.1, allerdings scheinbar nicht mit Qt 4.8.1. Aber da scheinbar diesbezüglich keine Kompatibilitätsprobleme bekannt sind werde ich mal weiter suchen woran es liegt.

Schönen Abend noch
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt 4.5.1 ui-form in Qt 4.8.1 verwenden

Beitrag von Christian81 »

1. Schonmal was von SQL-Injektion gehört? Viel Spass mit Deinem Code...
2. Der Code ist so korrekt und wenn ein Integer zurückgeliefert wird dann wird es auch korrekt ausgeführt. Also muss es was anderes sein - aber ein minimales Beispiel das das eigentliche Problem zeigt gibts ja leider (immer noch) nicht
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten