Определи сигнал как обычный pure virtual член в асбтрактном классе. А в реализации уже сделай его сигналом (засунь его в секцию signals)
хорошо сделал, у меня в интерфейсе теперь есть void settingsChaged() = 0, который потом в реализации плагина прописан в секции signals. Но вот где проблема: указатель на объект класса плагина то у меня получается вот так:
IPlugin *interface = qobject_cast<IPlugin*>(loader.instance());
потом я собираюсь законнектить:
connect(interface, SIGNAL(settingsChanged()), this, SLOT(changeSettings()));
и тут мне компилятор говорит, вобщем-то я с ним абсолютно согласен, что IPlugin далеко не QObject, и мол нельзя так законнектить.
добавлено спустя 17 минут: Заработало. Сделал вот так:
connect(loader.instance(), SIGNAL(settingsChanged()), this, SLOT(changeSettings()));