qt-material-widgets/components/plugin/plugintemplate.h

34 lines
2.4 KiB
C++

#ifndef PLUGINTEMPLATE_H
#define PLUGINTEMPLATE_H
#define QT_DESIGN_PLUGIN(pluginName, headerFile, className) \
class pluginName : public QObject, public QDesignerCustomWidgetInterface \
{ \
Q_OBJECT \
public: \
explicit pluginName(QObject *parent = nullptr):QObject(parent) {} \
\
QString name() const override { return #className; } \
QString group() const override { return "Qt Material Widgets"; } \
QString toolTip() const override { return QString(); } \
QString whatsThis() const override { return QString(); } \
QString includeFile() const override { return headerFile; } \
QIcon icon() const override { return QIcon(); } \
\
QWidget *createWidget(QWidget *parent) override { return new className(parent); } \
bool isContainer() const override { return true; } \
bool isInitialized() const override { return initialized; } \
void initialize(QDesignerFormEditorInterface * /*core*/) override { \
if (initialized) \
return; \
\
initialized = true; \
} \
\
private: \
bool initialized; \
}; \
#endif // PLUGINTEMPLATE_H