Seite 1 von 1

[gelöst]ui einbinen Pfad Fehlermeldung HILFE :)

Verfasst: 30. Juli 2015 13:48
von ReasyEasyPeasy
Moin,
ich habe ein kleines Projekt in Qt. Ich habe bisher nie den Designer benutzt und wollte dies nun tun. Allerdings schaffe ich es nicht ein Widget in ein QStackedWidget zu packen. Folgende Fehlermeldung kommt:
mainwindow.obj:-1: Fehler: LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __cdecl Form::Form(class QWidget *)" (??0Form@@QEAA@PEAVQWidget@@@Z)" in Funktion ""public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)".
Ich habe die header-Dateien in einen "header" ordner gepackt und die cpp-Dateien in einen "source" Ordner. Die ui-Datei habe ich in einen "ui" Ordner gepackt.

MainWindow.h

Code: Alles auswählen

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStackedWidget>
#include <QSplitter>
#include "mainmenu.h"
#include "tablewidget.h"
#include "form.h" //<------ die Header von dem designwidget
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    form *w;
    TableWidget *table;
    MainMenu *MainMenuLeft;
    QStackedWidget *MainWidget;
    QSplitter *MainSplitter;
public slots:
    void setMainWidget(int id);

};
MainWindow.cpp

Code: Alles auswählen

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    MainWidget = new QStackedWidget;
    MainSplitter = new QSplitter;
    MainMenuLeft = new MainMenu;
    MainSplitter->addWidget(MainMenuLeft);
    MainSplitter->addWidget(MainWidget);


    table = new TableWidget;
    w = new Form;
    MainWidget->addWidget(table);
    MainWidget->addWidget(w);

    setCentralWidget(MainSplitter);

}

MainWindow::~MainWindow()
{

}
form.h

Code: Alles auswählen

#ifndef FORM_H
#define FORM_H

#include <QWidget>
#include <QTableWidget>

namespace Ui {
class Form;
}

class Form : public QWid[code]
get
{
Q_OBJECT

public:

explicit Form(QWidget *parent = 0);
~Form();

private:
Ui::Form *ui;
};
#endif // FORM_H[/code]
form.cpp

Code: Alles auswählen

#include "../header/form.h"
#include "ui_form.h"//<---- Wo ist diese Datei? Er gibt mir aber keine Fehlermeldung
Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui->setupUi(this);
}

Form::~Form()
{
    delete ui;
}
Also ich möchte einfach das erstellte Widget ("form") in das QStackeWidget packen. Ich bekomme es um das verrecken nicht hin und würde mich sehr über Hilfe freuen.
Liebe Grüße:)

Re: ui einbinen Pfad Fehlermeldung HILFE :)

Verfasst: 30. Juli 2015 18:15
von Christian81
Und wird die form.cpp auch kompiliert?

Re: ui einbinen Pfad Fehlermeldung HILFE :)

Verfasst: 30. Juli 2015 18:31
von ReasyEasyPeasy
ok,
woran seh ich das? Bzw. was brauchst du für Infos um das sehen zu können? :)

Re: ui einbinen Pfad Fehlermeldung HILFE :)

Verfasst: 30. Juli 2015 18:52
von Christian81
Da ich nicht weiß welche IDE du verwendest gehe ich ich von qtcreator aus. Dieser erzeugt aus den Projekt-Dateien (*.pro) mittels qmake die Makefiles. Wenn in der Projektdatei form.cpp nicht in den Sourcen aufgelistet ist, wird sie auch nicht kompiliert.

Re: ui einbinen Pfad Fehlermeldung HILFE :)

Verfasst: 30. Juli 2015 19:00
von ReasyEasyPeasy
Ahh ja ok
Arbeit.pro

Code: Alles auswählen

#-------------------------------------------------
#
# Project created by QtCreator 2015-07-26T14:57:35
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Arbeit
TEMPLATE = app


SOURCES += source/main.cpp \
    source/mainwindow.cpp \
    source/mainmenu.cpp \
    source/idbutton.cpp \
    source/symbolbutton.cpp \
    source/tablewidget.cpp \
    source/form.cpp


HEADERS  += header/mainwindow.h \
    header/mainmenu.h \
    header/idbutton.h \
    header/symbolbutton.h \
    header/tablewidget.h \
    header/form.h

DISTFILES += \
    bilder/icon3.jpg \
    bilder/icon1.png \
    bilder/icon2.png \
    bilder/icon4.png \
    bilder/icon0.png \
    bilder/icon6.png

FORMS += ui\form.ui
Da habe ich es drin.
mainwindow.cpp

Code: Alles auswählen

#include "../header/mainwindow.h"//Hier gibt er mir die Fehlermeldung "Verzeichnis/form.h:Es existiert keine Datei oder Verzeichnis mit diesem Namen
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    MainWidget = new QStackedWidget;
    MainSplitter = new QSplitter;
    MainMenuLeft = new MainMenu;
    MainSplitter->addWidget(MainMenuLeft);
    MainSplitter->addWidget(MainWidget);
    table = new TableWidget;
    w = new Form;
    MainWidget->addWidget(table);
    MainWidget->addWidget(w);
    setCentralWidget(MainSplitter);

}

MainWindow::~MainWindow()
{


Re: ui einbinen Pfad Fehlermeldung HILFE :)

Verfasst: 30. Juli 2015 19:12
von Christian81
Dann nochmal neu generieren lassen bzw. alle build-Dateien löschen lassen und dann neu kompilieren.

Re: ui einbinen Pfad Fehlermeldung HILFE :)

Verfasst: 30. Juli 2015 19:18
von ReasyEasyPeasy
ok es funktoniert... . Woran liegt das? Damit ich nicht nochmal so eine Fehler bekomme?
Vielen Dank