Hallo!
Bei mir funktioniert der Ansatz leider nicht. Und ich weiß einfach nicht warum
Ich hoffe ihr könnt mir helfen. Ich nutze übrigens QT4.1
Als erstes habe ich mit dem Dessigner ein Widget erstellt, als ui-File gespeichert, über das Plugin in Microsoft Visual C++ importiert und mit der "Direct Approach" in mein Programm eingebunden.
Das hat soweit alles Funktioniert.
Nun zu meinem Problem:
Mit dem oben geschilderten Ansatz (Single Inheritance Approach) bekomme ich immer Fehlermeldungen.
Hier mal die Auszüge aus den Dateien:
Die kompilierte ui-Datei "Ui_IOPlugin_Widget.h"
Code:
#ifndef UI_IOPLUGIN_WIDGET_H
#define UI_IOPLUGIN_WIDGET_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QGridLayout>
#include <QtGui/QLCDNumber>
#include <QtGui/QLabel>
#include <QtGui/QSpacerItem>
#include <QtGui/QSpinBox>
#include <QtGui/QTextBrowser>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>
class Ui_IOWidget
{
…
//DAS HAB ICH MAL GEKÜRZT
…
};
namespace Ui {
class IOWidget: public Ui_IOWidget {};
} // namespace Ui
#endif // UI_IOPLUGIN_WIDGET_H
Um die Klasse Abzuleiten habe ich laut diverser Quellen eine .h und .cpp-Datei erstellt:
SingleInheritance.h
Code:
#ifndef SINGLE_INHERITANCE_H
#define SINGLE_INHERITANCE_H
#include "../generated/ui_IOPlugin_Widget.h"
class MyClass : public Ui_IOWidget
{
Q_OBJECT
public:
MyClass(QWidget* parent=0, const char* name=0);
};
#endif
SingleInheritance.cpp
Code:
#include "Single_Inheritance.h"
#include <QApplication>
#include <QDialog>
MyClass::MyClass(QWidget* parent, const char* name) : Ui_IOWidget(parent, name)
{
}
Beim kompilieren bekomme ich den folgenden Fehler:
...\Single_Inheritance.cpp( 78 ) : error C2661: 'Ui_IOWidget::Ui_IOWidget' : no overloaded function takes 2 parameters
Wenn ich die ganzen "name"s aus den Klammern entfern lautet der Fehler
...\single_inheritance.cpp( 78 ) : error C2664: '__thiscall Ui_IOWidget::Ui_IOWidget(const class Ui_IOWidget &)' : cannot convert parameter 1 from 'class QWidget *' to 'const class Ui_IOWidget &'
Reason: cannot convert from 'class QWidget *' to 'const class Ui_IOWidget'
No constructor could take the source type, or constructor overload resolution was ambiguous
Error executing cl.exe.
Ausserdem hab ich mal statt
"class MyClass : public Ui_IOWidget"
die Zeile
class MyClass : public IOWidget
oder auch
class MyClass : public QWidget
eingefügt, weil ich mir nicht sicher bin was dort hin gehört, aber alles ohne Erfolg.
Was muss ich ändern?
Danke schon mal für eure Hilfe!!!
PS: Gibt es den Code-Editor von QT3 in QT 4 eigentlich nicht mehr?
Lesezeichen