Я пытаюсь подключить сигнал из внешней общей библиотеки к перегруженному слоту слота базового класса QWidget.
Предположим, this
является экземпляром класса, полученного из QWidget
class MyClass : public QWidget;
...
MyClass* this_instance = new MyClass;
Я попробовал следующий подход
connect(obj_from_sl, SIGNAL(signalFromSL()), this, SLOT(update());
// update() is QWidget's slot
// the "sl" suffixs stands for "shared library"
, но он не сработал.У меня есть ошибки компоновщика.Я искал и обнаружил, что невозможно подключить сигнал из внешней общей библиотеки, используя макросы SIGNAL
/ SLOT
внутри функции connect
.Это может быть возможно, если я использую указатели функций.
ОК.Давайте изменим подпись:
connect(obj_from_sl, &ClassFromSL::signalFromSL, this, &QWidget::update);
^ error comes here
и вуаля
не может определить, какой экземпляр перегруженной функции "QWidget::update
" предназначен.
Может ли кто-нибудь помочь мне решить эту проблему?