[gelöst] undefined reference to QFormBuilder

Alles rund um die Programmierung mit Qt
Antworten
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

[gelöst] undefined reference to QFormBuilder

Beitrag von Jonez »

Hi,
ich fang gerade erst mit Qt 4 an und obwohl noch fast nix bei mir läuft, find ich es schon klasse :)
Nur jetzt häng ich grad an folgendem:

Da ich meine Oberflächen mit dem Designer erstellen will, muss ich ja den "QFormBuilder" verwenden, wenn ich das bis jetzt richtig verstanden hab.. ?
Allerdings erhalte ich beim kompilieren immer den Fehler:

Code: Alles auswählen

clsMainForm.o(.text+0x68): In function `clsMainForm::clsMainForm[in-charge](QWidget*)':
clsMainForm.cpp: undefined reference to `QFormBuilder::QFormBuilder[in-charge]()'
clsMainForm.o(.text+0x118):clsMainForm.cpp: undefined reference to `QAbstractFormBuilder::load(QIODevice*, QWidget*)'
clsMainForm.o(.text+0x3f6):clsMainForm.cpp: undefined reference to `vtable for QFormBuilder'
...
mein Projekt besteht bis jetzt aus folgenden 3 Dateien:

passwordmanager.cpp

Code: Alles auswählen

#include <QApplication>

#include "clsMainForm.h"

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    clsMainForm *mainForm = new clsMainForm;
    mainForm->show();

    return app.exec();
}
clsMainForm.cpp

Code: Alles auswählen

#include <QtGui>
#include <QFormBuilder>

#include "clsMainForm.h"

clsMainForm::clsMainForm(QWidget *parent)  : QWidget(parent) {
    QFormBuilder builder;
    QFile file("mainform.ui");
    file.open(QFile::ReadOnly);
    QWidget *formWidget = builder.load(&file, this);
    file.close();

    btnAdd 		= qFindChild<QPushButton*>(this, "btnAdd");
    btnEdit 		= qFindChild<QPushButton*>(this, "btnEdit");
    btnDel 			= qFindChild<QPushButton*>(this, "btnDel");
    lstPasswords 	= qFindChild<QListView*>(this, "lstPasswords");

    QMetaObject::connectSlotsByName(this);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(formWidget);
    setLayout(layout);

    setWindowTitle(tr("Password Manager"));
}

void clsMainForm::on_btnAdd_pressed() {}

void clsMainForm::on_btnEdit_pressed() {}

void clsMainForm::on_btnDel_pressed() {}
clsMainForm.h

Code: Alles auswählen

#ifndef CLSMAINFORM_H
#define CLSMAINFORM_H

#include <QWidget>
#include <QPushButton>
#include <QListView>

class clsMainForm : public QWidget {
    Q_OBJECT

public:
    clsMainForm(QWidget *parent = 0);

private slots:
    void on_btnAdd_pressed();
    void on_btnEdit_pressed();
    void on_btnDel_pressed();

private:
    QPushButton *btnAdd;
    QPushButton *btnEdit;
    QPushButton *btnDel;
    QListView *lstPasswords;
};

#endif
Als entwicklungsumgebung verwende ich kdevelop.
Als include-Verzeichnise hab ich praktisch alle aus /usr/local/Trolltech/4.0.1/include angegeben.

Kann mir da irgendjemand weiterhelfen?

1000 Dank,
Jonas
klogg
Beiträge: 129
Registriert: 5. September 2005 17:00
Wohnort: Hann. Münden

Beitrag von klogg »

Geht das unter Linux so völlig anders als unter Windows?

Wenn nicht, dann lies mal in der Hilfe des QDesigners
das Kapitel Using Forms and Components -> Using a Component in Your Application

HENNING
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

Beitrag von Jonez »

Hi,
bin ich gerade dabei :)
Ich hab mir die Beispiele und Tutorials angesehen, und bei den Beispielen wird es zumindest so gemacht.

Ich probier's mal,
trotzdem wunder ich mich noch über den Fehler, da es in den Beispielanwendungen ja funktioniert..

thanx, jonas
dani
Beiträge: 28
Registriert: 11. August 2005 22:22

Beitrag von dani »

In welchem Beispiel wird das denn verwendet?
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

Beitrag von Jonez »

examples/designer/calculatorbuilder

das war das einzigste was ich gefunden hab, wo wirklich .ui - dateien verwendet werden.
Wie verwendet "Ihr" denn diese .ui - Dateien? In der Hilfe stehen ja 3 Möglichkeiten: Direct, Single und Multiple Approach ..

Ich versuch mein Glück gerade noch an der "Single Inheritance Approach" - Methode, bekomm es aber noch nicht richtig hin...

thanx,
jonas
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

Beitrag von Jonez »

Hi,
okay, ich glaub ich hab's raus :)

Thanx,
Jonas
Antworten