[Qt] QLineedit mit Werten von QTableView aktualisieren



  • Hallo, also ich habe folgendes: Ich habe eine MySQL-Datenbank von der ich in eine QTableView einige Werte anzeigen lasse. Wenn ich eine Reihe klicke mochte ich das einige QLineEdit's mit Werten gefuellt werden. Hier ein scrennshot dazu: http://img692.imageshack.us/img692/9089/qtdialog.jpg Allerdings will es nicht funktionieren, und die QLineEdit's bleiben Leer. Hier ein kleiner Code-Ausschnitt:

    Del::Del(QWidget* parent)
    : QDialog(parent),
      ui_(new Ui::Del)
    {
        // ...
        connect(ui_ -> userView_ -> selectionModel(),
                SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
                this,
                SLOT(SearchId()));
    
        // ...
    }
    

    Und hier die SearchId()-Funktion:

    QModelIndex index = ui_ -> userView_ -> currentIndex();
    if(index.isValid())
    {
        QSqlRecord record = model_ -> record(index.row());
        userid_ = record.value("userid").toInt();
    }
    

    Nachdem die Funktion die userid gefunden hat, folgen einige querys die notwendig sind um die benotigten Felder zu fuellen. Ist der Code richtig, oder muss es eine andere signal-Funktion sein? Oder ist die Funktion SearchId() vollig Falsch? Muss noch dazu sagen das ich folgende Meldung im Creator angezeigt bekomme:

    QObject::connect: Cannot connect (null)::currentRowChanged(QModelIndex,QModelIndex) to Del::SearchId()

    Der Code laesst sich Kompilieren ob es Auswirkungen auf die Anwendung hat weiss ich nicht. Kann mir jemand sagen wie ich beide Probleme beheben kann? Bin fuer jede Hilfe dankbar.
    Btw ich benutze Qt 4.6.2.



  • Die Meldung sagt doch eigentlich schon alles, oder?
    "(null)::currentRowChanged "

    Deine View wird zu dem Zeitpunkt weder model noch selectionModel haben 🙂
    Also erst model setzen, dann connecten.
    Grund siehe "QAbstractItemView::setSelectionModel" in der Doku.



  • Danke l'abra d'or 👍 Habe es so gemacht wie du es gesagt hast. Ist es eigentlich guter Programmierstil wenn man die connect-Funktion immer erst benutzt wenn man sie braucht anstatt immer im Konstruktor einer Klasse? Ich lerne Ausschliesslich von den Beispielen und dem Tutorial und da fehlt mir so der Hintergrund uber die Qt-Mechanismen.
    Danke nochmals



  • spongebob011101 schrieb:

    Ist es eigentlich guter Programmierstil wenn man die connect-Funktion immer erst benutzt wenn man sie braucht anstatt immer im Konstruktor einer Klasse?

    Kommt doch ganz drauf an. Wenn du eine Methode hast, die das model setzt, machen doch vorher connects noch gar keinen Sinn - das Model existiert noch nicht.
    Wenn man aber nen Dialog hat und da kleben von Beginn an Buttons dran, macht das connect im Konstruktor sehr wohl Sinn.


Anmelden zum Antworten