Russian Qt Forum

Qt => Общие вопросы => Тема начата: Martiro от Декабрь 23, 2010, 14:32



Название: Как принимать сигналы от библиотеки?
Отправлено: Martiro от Декабрь 23, 2010, 14:32
Есть библиотечка, она посылает сигнал:

Код
emit sendProgress( /*double*/ dProccess );

Библиотека эта вызывается след. образом:

Код
QLibrary lib(sLibName);
 
typedef int (*Fct) (double &, char* ...);
Fct fct = (Fct)(lib.resolve("getCurrentCodeByName"));
if (!fct)
{
 return;
}
else
{
 res = fct (nameNumb, dataName ...)
}

Как законнектить сигнал sendProgress(double) на слот в приложении?

QT 4, МСВС.


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: crossly от Декабрь 23, 2010, 15:35
используйте раннее связывание ....


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: Martiro от Декабрь 23, 2010, 15:57
А поподробнее-поконкретнее...  ::)
Как мне сигнал в библиотеке связать с функцией в главном приложении?


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: crossly от Декабрь 23, 2010, 16:29
подключаете хидер библиотеки... создаете экземпляр класса .... соединяете сигнал... 


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: Martiro от Июнь 30, 2011, 12:09
Вновь столкнулся с подобной проблемой...
Можно ли без подключения хидера это реализовать?

В моем случае есть приложение. В нем подключаюсь к n-библиотекам, просто, через QLibrary::load(). У каждой библиотеки есть функция runLibrarary(), которая запускает библиотеку. В одной из библиотек есть процедурка, требующая обращения к функции главного приложения.
Как мне реализовать это обращение. Да так, чтоб еще и некоторое значение вернулось обратно в функцию? Это вообще реально? :)


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: ритт от Июнь 30, 2011, 16:08
отрезолвьте функцию, возвращающую объект, испускающий сигнал - дальше просто...


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: iks от Июль 06, 2011, 22:19
Можно верить можно нет, но у меня есть реализация, простого прямого обращения через parent из плагина в приложение, и получаю ответ от приложения в плагин.
Это у меня получилось чисто случайно, сначало было приложение, потом решил разнести его по плагинам, и случайно пропустил данный вызов функции , когда позже заметил не стал переделывать вызов через сигнал.слот, раз и так работает =)


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: andybeg от Июль 07, 2011, 10:30
Можно верить можно нет, но у меня есть реализация, простого прямого обращения через parent из плагина в приложение, и получаю ответ от приложения в плагин.
Это у меня получилось чисто случайно, сначало было приложение, потом решил разнести его по плагинам, и случайно пропустил данный вызов функции , когда позже заметил не стал переделывать вызов через сигнал.слот, раз и так работает =)
не будет наглостью если попрошу показать данную реализацию?


Название: Re: Как принимать сигналы от библиотеки?
Отправлено: iks от Июль 08, 2011, 11:37
Сейчас посмотрел, реализация не совсем та что сказал сразу, идет вызов основного приложения с кнопки через parent из плагина прямым обращением в слот приложения.
Пример все равно сделал, может кому пригодится