Russian Qt Forum
Мая 17, 2025, 19:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сигнал с параметром пользовательского типа  (Прочитано 5978 раз)
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.033 секунд. Запросов: 21.