Hi,
Here I am once again.
I'm trying to developp my own custom widget. I did it well the old fashion way but when I try to do it as a plugin it fails at compilation, invoking a problem with my Constructor, I don't know why so I hopre someone could help me.
The widget I'm trying to developp is a FileChooser from Qt Tutorial.
The compilation error message is the following :
error C2533 CustomWidgetPlugin::CustomWidgetPlugin : constructor not allowed a return type
error C2533 CustomWidgetPlugin::CustomWidgetPlugin : constructor not allowed a return type
To copy to clipboard, switch view to plain text mode
... I'm pretty sure that it does not return any value, so why does the compilation failed ?
Here is my code for the .h
#include <qwidgetplugin.h>
class CustomWidgetPlugin : public QWidgetPlugin
{
public:
CustomWidgetPlugin();
QWidget* create
(const QString
& classname,
QWidget* parent
=0,
const char* name
=0);
QString group
(const QString
&) const;
QIconSet iconSet(const QString&) const;
QString includeFile
(const QString
&) const;
QString toolTip
(const QString
&) const;
QString whatsThis
(const QString
&) const;
bool isContainer(const QString&) const;
}
#include <qwidgetplugin.h>
class CustomWidgetPlugin : public QWidgetPlugin
{
public:
CustomWidgetPlugin();
QStringList keys() const;
QWidget* create(const QString& classname, QWidget* parent=0, const char* name=0);
QString group(const QString&) const;
QIconSet iconSet(const QString&) const;
QString includeFile(const QString&) const;
QString toolTip(const QString&) const;
QString whatsThis(const QString&) const;
bool isContainer(const QString&) const;
}
To copy to clipboard, switch view to plain text mode
the code for the .cpp
#include "CustomWidgetPlugin.h"
CustomWidgetPlugin::CustomWidgetPlugin()
{
}
{
list << "FileChooser";
return list;
}
QWidget* CustomWidgetPlugin
::create(const QString
& key,
QWidget* parent,
const char* name
) const {
if( key == "FileChooser" )
return new FileChooser(parent, name);
return 0;
}
QString CustomWidgetPlugin
::includeFile(const QString
& feature
) const {
if( feature == "FileChooser" )
return "filechooser.h";
}
QString CustomWidgetPlugin
::group(const QString
& feature
) const {
if( feature == "FileChooser" )
return "Input";
}
QIconSet CustomWidgetPlugin::iconSet(const QString& feature) const
{
return QIconSet
( QPixmap("filechooser_pixmap.png"));
}
QString CustomWidgetPlugin
::toolTip(const QString
& feature
) const {
if( feature == "FileChooser" )
return "File Chooser Widget";
}
QString CustomWidgetPlugin
::whatsThis(const QString
& feature
) const {
if( feature == "FileChooser" )
return "A widget to choose a file";
}
bool CustomWidgetPlugin::isContainer(const QString& feature) const
{
return FALSE;
}
Q_EXPORT_PLUGIN( CustomWidgetPlugin )
#include "CustomWidgetPlugin.h"
CustomWidgetPlugin::CustomWidgetPlugin()
{
}
QStringList CustomWidgetPlugin::keys() const
{
QStringList list;
list << "FileChooser";
return list;
}
QWidget* CustomWidgetPlugin::create(const QString& key, QWidget* parent, const char* name) const
{
if( key == "FileChooser" )
return new FileChooser(parent, name);
return 0;
}
QString CustomWidgetPlugin::includeFile(const QString& feature) const
{
if( feature == "FileChooser" )
return "filechooser.h";
return QString::null;
}
QString CustomWidgetPlugin::group(const QString& feature) const
{
if( feature == "FileChooser" )
return "Input";
return QString::null;
}
QIconSet CustomWidgetPlugin::iconSet(const QString& feature) const
{
return QIconSet( QPixmap("filechooser_pixmap.png"));
}
QString CustomWidgetPlugin::toolTip(const QString& feature) const
{
if( feature == "FileChooser" )
return "File Chooser Widget";
return QString::null;
}
QString CustomWidgetPlugin::whatsThis(const QString& feature) const
{
if( feature == "FileChooser" )
return "A widget to choose a file";
return QString::null;
}
bool CustomWidgetPlugin::isContainer(const QString& feature) const
{
return FALSE;
}
Q_EXPORT_PLUGIN( CustomWidgetPlugin )
To copy to clipboard, switch view to plain text mode
and my .pro
SOURCES += CustomWidgetPlugin.cpp ../FileChooser/filechooser.cpp
HEADERS += CustomWidgetPlugin.h ../FileChooser/filechooser.h
DESTDIR = $(QTDIR)/plugins/designer
TARGET = filechooser
target.path=$$plugins.path
isEmpty(target.path):target.path==$$QT_PREFIX/plugins
INSTALLS += target
TEMPLATE = lib
CONFIG += qt warn_on release plugin
INCLUDEPATH += $(QTDIR)/tools/designer/interfaces
DBFILE = CustomWidgetPlugin.db
PROJECTNAME = CustomWidgetPlugin
LANGUAGE = C++
SOURCES += CustomWidgetPlugin.cpp ../FileChooser/filechooser.cpp
HEADERS += CustomWidgetPlugin.h ../FileChooser/filechooser.h
DESTDIR = $(QTDIR)/plugins/designer
TARGET = filechooser
target.path=$$plugins.path
isEmpty(target.path):target.path==$$QT_PREFIX/plugins
INSTALLS += target
TEMPLATE = lib
CONFIG += qt warn_on release plugin
INCLUDEPATH += $(QTDIR)/tools/designer/interfaces
DBFILE = CustomWidgetPlugin.db
PROJECTNAME = CustomWidgetPlugin
LANGUAGE = C++
To copy to clipboard, switch view to plain text mode
Thanks in advance for your help.
Bookmarks