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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сигнал с параметром пользовательского типа  (Прочитано 5835 раз)
Barmaglodd
Гость
« : Декабрь 08, 2007, 15:34 »

Qt позволяет объявлять сигналы с параметрами пользовательского типа?
например:
Код:
struct a
{
 int a1;
 int a2;
};

class foo:public QObject
{
 ....
 signals:
    void sig(a);
};

Объявляю так сигнал и в другом классе слот, connect возвращает true, но слот не вызывается. Меняю параметры сигнала и слота на (int a1, in a2), слот вызывается. Доки почитал, ничего про ограничения не сказано.
Записан
baka
Гость
« Ответ #1 : Декабрь 08, 2007, 16:26 »

да точно позволяет
я один раз так делал.
могу показать исходники (они корявые но через сигнал там точно передается экземпляр собственного класса).
Записан
Dodge
Гость
« Ответ #2 : Декабрь 08, 2007, 23:56 »

попробуйте Q_DECLARE_METATYPE(a)
хотя странно, посмотрите еще раз ваш код.
Записан
der
Гость
« Ответ #3 : Декабрь 27, 2007, 09:21 »

Так получилось или нет? Улыбающийся
Я объявил тип(typedef struct), и по значению экземпляр не передаётся. А по указателю передаётся.
Добавлено: по ссылке тоже не передаётся.
« Последнее редактирование: Декабрь 27, 2007, 10:49 от der » Записан
Barmaglodd
Гость
« Ответ #4 : Декабрь 27, 2007, 09:49 »

Нет, не получилось. Q_DECLARE_METATYPE(a) не пробовал.
Записан
WW
Гость
« Ответ #5 : Декабрь 27, 2007, 11:26 »

вставляешь где-нить в конструкторе
qRegisterMetaType<clSomeClass>("clSomeClass");
и емитишь его как обычный тип.
Записан
der
Гость
« Ответ #6 : Декабрь 27, 2007, 12:42 »

Большое спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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