Man kann nur einmal von QObject ableiten, das geht also nicht.
Mach es eher so
Code:
class CallbackInterface
{
public:
void open_texture(const QString&) = 0;
};
class CallbackConverter : public QObject
{
Q_OBJECT
public:
CallbackConverter(CallbackInterface* iface, QObject* parent)
: QObject(parent), m_interface(iface) {}
public slots:
void slotOpenTexture(const QString& filename) {
if (m_interface) m_interface->open_texture(filename);
}
private:
CallbackInterface* m_interface;
};
Dein Template leitete dann von deinem GL Widget und diesem CallbackInterface ab.
Irgendwo darin, zum Beispiel schon im GLWidget, machst du
Code:
CallbackConverter* converter = new CallbackConverter(this);
QObject::connect(...);
Du kannst den Converter natürlich auch extern erzeugen.
Ciao,
_
Edit: wahrscheinlich geht es noch einfacher.
Wenn die Ableitung GLWidget<-Template klappt, kannst du den Slot auch im GL Widget implementieren, dann sparst du dir alles andere.
Lesezeichen