Russian Qt Forum
Ноябрь 23, 2024, 22:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Callback в виде слота  (Прочитано 9959 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #15 : Июнь 16, 2016, 13:53 »

Насколько я понимаю, речь идет о передаче определенного параметра. А мне нужно передать ссылку на целый метод, определенный вообще в другом классе. Передать переменную я бы смог и без калбэка.
Нет, вы не правильно понимаете.
Здесь вы запускаете функцию process в рабочем потоке, так же можно поступить и с любым методом любого объекта.
Записан
wenny
Гость
« Ответ #16 : Июнь 16, 2016, 13:55 »

Соорудил следующую конструкцию:
Код
C++ (Qt)
hipchatWorker = new HipchatWorker( hipchat, tray );
hipchatWorker->setCb( this, &stopCheckingNewMessages );

Код
C++ (Qt)
void HipchatWorker::setCb( TrayWindow* object, void (TrayWindow::*fn)() )
{
   object->fn(); // вызываю, как в js
}

Однако вызвать калбэк не удается (говорит, что нет мембера fn у TrayWindow) Грустный Как переменную задействовать?
« Последнее редактирование: Июнь 16, 2016, 14:22 от wenny » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #17 : Июнь 16, 2016, 15:01 »

передавайте вместо поинтера на метод какой-нибудь ID, например,

void HipchatWorker::setCb( TrayWindow* object, int id)
{
    if (id == idStopCheckingNewMessages)
        object->stopCheckingNewMessages ();
    .... // тут другие допустимые id
}
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #18 : Июнь 16, 2016, 15:28 »

если я правильно понял цель: из RealClass пускать сигналы, в MainForm приконнектить к этим сигналам слоты требуемых объектов
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 22.