Здравствуйте.Возникла следующая проблема.
Написал простенький виджет,захотелось вставить его в Designer.
Описал подкласс QDesignerCustomWidgetInterface.Сложил все файлы в одну папку.Скомпилировалось все без ошибок,но виджет в дизайнере так и не появился.
Помогите пожалуйста.
*.pro-файл
TEMPLATE =lib
CONFIG += designer plugin release
HEADERS +=mybutton.h mybuttonplugin.h
SOURCES +=mybutton.cpp mybuttonplugin.cpp
DESTDIR =$(QTDIR)/plugins/designer
заголовочный файл подкласса QDesignerCustomWidgetInterface
#ifndef MYBUTTONPLUGIN_H
#define MYBUTTONPLUGIN_H
#include <QDesignerCustomWidgetInterface>
class MyButtonPlugin : public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
MyButtonPlugin(QObject *parent = 0);
bool isContainer() const;
bool isInitialized() const;
QIcon icon() const;
QString domXml() const;
QString group() const;
QString includeFile() const;
QString name() const;
QString toolTip() const;
QString whatsThis() const;
QWidget *createWidget(QWidget *parent);
void initialize(QDesignerFormEditorInterface *core);
private:
bool m_initialized;
};
#endif
Исходный код подкласса QDesignerCustomWidgetInterface
#include "mybutton.h"
#include "mybuttonplugin.h"
#include <QtCore/QtPlugin>
MyButtonPlugin::MyButtonPlugin(QObject *parent)
: QObject(parent)
{
m_initialized = false;
}
void MyButtonPlugin::initialize(QDesignerFormEditorInterface * /* core */)
{
if (m_initialized)
return;
// Add extension registrations, etc. here
m_initialized = true;
}
bool MyButtonPlugin::isInitialized() const
{
return m_initialized;
}
QWidget *MyButtonPlugin::createWidget(QWidget *parent)
{
return new MyButton(parent);
}
QString MyButtonPlugin::name() const
{
return QLatin1String("MyButton");
}
QString MyButtonPlugin::group() const
{
return QLatin1String("dfds");
}
QIcon MyButtonPlugin::icon() const
{
return QIcon();
}
QString MyButtonPlugin::toolTip() const
{
return QLatin1String("");
}
QString MyButtonPlugin::whatsThis() const
{
return QLatin1String("");
}
bool MyButtonPlugin::isContainer() const
{
return false;
}
QString MyButtonPlugin::domXml() const
{
return QLatin1String("<widget class=\"MyButton\" name=\"myButton\">\n</widget>\n");
}
QString MyButtonPlugin::includeFile() const
{
return QLatin1String("mybutton.h");
}
Q_EXPORT_PLUGIN2(mybuttonplugin, MyButtonPlugin)