crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Передача слота в качестве параметра функции
Гость_Xnt_*
сообщение 12.12.2007, 12:03
Сообщение #1





Гости








    


Возникла необходимость передавать слот в качестве параметра функции, чтобы в ней его соединить с нужным сигналом. Я делаю так:
class X: public QObject
{
    Q_OBJECT
private slots:
...
    void SlotFunc(){}
...
public:
...
    A(){ SlotConnect( &X::SlotFunc); }
    void SlotConnect( void (X::*pFunc)()){ connect( this, SIGNAL( OpenDb), this, SLOT(pFunc)); }
...
};

Все компилиться, но почему-то не работает. :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 12.12.2007, 12:31
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3293
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Может попробовать так?
void SlotConnect(const char *pSlot) 
{    
   connect( this, SIGNAL( OpenDb), this, pSlot);
}


Вызов:
SlotConnect( SLOT(pFunc));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Xnt_*
сообщение 12.12.2007, 15:20
Сообщение #3





Гости








    


Спасибо, работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.9.2020, 20:48