[gelöst] undefined reference to QFormBuilder
Verfasst: 7. Oktober 2005 12:23
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:
mein Projekt besteht bis jetzt aus folgenden 3 Dateien:
passwordmanager.cpp
clsMainForm.cpp
clsMainForm.h
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
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'
...
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();
}
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() {}
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 include-Verzeichnise hab ich praktisch alle aus /usr/local/Trolltech/4.0.1/include angegeben.
Kann mir da irgendjemand weiterhelfen?
1000 Dank,
Jonas