My real question is , can my interface inherit from QObject and just how to achieve that ? Well , i understand that connects in C++ are merely classes that consists of only virtual techniques , and ordinarily a class can inherit from the superclass. But when i actually do so i recieve a mistake because of ambiguous QObject references. I have to inherit QObject to include signals /slot feature to my plug ins.

My interface


#include <QLabel>
#include <QObject>

class LabelInterface : public QObject {

public :

    virtual ~LabelInterface() {}
    virtual QLabel* newLabel() = 0;

public slots:
    virtual void setLabelText() = 0;

Q_DECLARE_INTERFACE (LabelInterface,"com.stefan.Plugin.LabelInterface/1.0")


Wordpress plugin header file


#include "labelinterface.h"

class LabelPlugin : public LabelInterface



    QLabel* label;
    QLabel* newLabel();
     LabelPlugin() {}
    ~LabelPlugin() {}

public slots:
    void setTextForLabel();


Implementation file

#include <QtGui>
#include "labelplugin.h"

QLabel* LabelPlugin::newLabel() {

    label = new QLabel("This plugin works");

    return label;

void LabelPlugin::setTextForLabel() {

    label->setText("This plugin works fine");


// Exporta plugin-ul
Q_EXPORT_PLUGIN2 (labelplugin,LabelPlugin)

I recieve error

labelplugin.cpp:18: error: cannot allocate an object of abstract type ‘LabelPlugin’

You didn't remember to implement

virtual void setLabelText() = 0;

You implemented

void setTextForLabel();

was that the typo? To instantiate a category you have to override and implement all pure virtual techniques within the base class. Since you are not doing that, you class remains abstract.