Ошибка компиляции в connect() с QtGstreamer

Я пытаюсь посмотреть сообщения, которые проходят через конвейер QtGstreamer.

Вот код, о котором идет речь:

//pipeline is of type: QGst::PipelinePtr
pipeline->bus()->enableSyncMessageEmission(); 

QGlib::connect(pipeline->bus(), "sync-message", this, &MyClass::_msg_handler);

Но QtCreator жалуется на connect():

/usr/include/QtGStreamer/QGlib/connectimpl.h:-1: In function 
‘bool QGlib::connect(void*, const char*, T*, R (T::*)(A0), QGlib::ConnectFlags) 
[with T = MyClass, R = void, A0 = const QGlib::RefPointer<QGst::Message>&, 
QGlib::ConnectFlags = QFlags<QGlib::ConnectFlag>]’:

/usr/include/QtGStreamer/QGlib/connectimpl.h:330: error: invalid initialization
of reference of type ‘const QGlib::Private::DestroyNotifierIfacePtr&’ from 
expression of type ‘QGlib::Private::GetDestroyNotifier<MyClass, void>’

/usr/include/QtGStreamer/QGlib/connect.h:259: error: in passing argument 5 of 
‘ulong QGlib::Private::connect(void*, const char*, QGlib::Quark, void*, const
QGlib::Private::DestroyNotifierIfacePtr&, uint, QGlib::Private::ClosureDataBase*, 
QGlib::ConnectFlags)’

В чем может быть причина?

1 ответ

Решение

Решено.

В моем случае обратный вызов, указанный в connect() был метод из класса, который я написал, поэтому проблема заключалась в том, что MyClass необходимо наследовать от QObject:

class MasterSink : public QObject
{
   // ...
}
Другие вопросы по тегам