Qt-interest Archive, April 2007
QWorkspace plugin
Message 1 in thread
Hi
i have tried to create a QWorkspace plugin to use in designer, If I try to use
it designer boms out with a Segmentation fault. I am using "Qt Open Source
Edition version 4.2.3" on RHEL 4. I would appreciated it if someone can tell
me where I went wrong or did not do.
Thanks in advance
Here is the code for the plugin
* FILENAME : workspacePlugin.h
********************************************************************************************************/
#ifndef WORKSPACEPLUGIN_H
#define WORKSPACEPLUGIN_H
//
#include <QtDesigner/QDesignerContainerExtension>
#include <QtDesigner/QDesignerCustomWidgetInterface>
//
#include <QtCore/qplugin.h>
#include <QtGui/QIcon>
//
//class QDesignerFormEditorInterface;
//
class workspacePlugin : public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
Q_INTERFACES( QDesignerCustomWidgetInterface )
public:
workspacePlugin( QObject* = 0 );
bool isContainer() const;
bool isInitialized() const;
QIcon icon() const;
QString codeTemplate() const;
QString domXml() const;
QString group() const;
QString includeFile() const;
QString name() const;
QString toolTip() const;
QString whatsThis() const;
QWidget* createWidget( QWidget* );
void initialize( QDesignerFormEditorInterface* );
//
private:
bool initialized;
//
};
//
#endif // WORKSPACEPLUGIN_H
* FILENAME : workspacePlugin.cpp
********************************************************************************************************/
#include "workspacePlugin.h"
#include "workspace.h"
#include <QtPlugin>
//
workspacePlugin::workspacePlugin( QObject* parent )
: QObject( parent ), initialized( false )
{
}
//
void workspacePlugin::initialize( QDesignerFormEditorInterface* /*core*/ )
{
// Q_UNUSED( core );
if(initialized)
return;
initialized = true;
}
//
bool workspacePlugin::isInitialized() const
{
return initialized;
}
//
QWidget* workspacePlugin::createWidget( QWidget* parent )
{
return new Workspace( parent );
}
QString workspacePlugin::name() const
{
return "Workspace";
}
QString workspacePlugin::group() const
{
return "Others";
}
QIcon workspacePlugin::icon() const
{
return QIcon();
}
QString workspacePlugin::toolTip() const
{
return QString();
}
QString workspacePlugin::whatsThis() const
{
return QString();
}
bool workspacePlugin::isContainer() const
{
return true;
}
QString workspacePlugin::domXml() const
{
return QLatin1String("<widget class=\"QWorkspace\" name=\" Workspace\">\n"
" <property name=\"geometry\">\n"
" <rect>\n"
" <x>0</x>\n"
" <y>0</y>\n"
" <width>160</width>\n"
" <height>120</height>\n"
" </rect>\n"
" </property>\n"
"</widget>\n");
}
//
QString workspacePlugin::includeFile() const
{
return "workspace.h";
}
//
QString workspacePlugin::codeTemplate() const
{
return QString();
}
Q_EXPORT_PLUGIN2(workspace,workspacePlugin )
* FILENAME : workspace.h
********************************************************************************************************/
#ifndef WORKSPACE_H
#define WORKSPACE_H
//
#include <QtGui/QWidget>
#include <QtDesigner/QDesignerExportWidget>
#include <QtGui/QWorkspace>
//
class QDESIGNER_WIDGET_EXPORT Workspace : public QWorkspace
{
Q_OBJECT
//
public:
Workspace( QWidget* = 0 );
~Workspace();
//
};
//
#endif // WORKSPACE_H
* FILENAME : workspace.cpp
********************************************************************************************************/
#include "workspace.h"
//
Workspace::Workspace( QWidget* parent )
: QWorkspace( parent )
{
}
//
Workspace::~Workspace()
{
}
--
[ signature omitted ]