Russian Qt Forum

Qt => Общие вопросы => Тема начата: MuLLIKA от Октябрь 16, 2010, 14:26



Название: проблема с реализацией сигнала слота
Отправлено: MuLLIKA от Октябрь 16, 2010, 14:26
Компилятор выдает такую ошибку:

QObject::connect: Incompatible sender/receiver arguments
        SceneExm::ChangeArrayCollids(graphitemclass*,graphitemclass*,Mode&) --> mainW::AddArrayCollidsElements(graphitemclass*,graphitemclass*,SceneExm::Mode&)

я не правильно передаю параметры в слот, видимо....но не могу разобраться как нужно правильно это сделать!

сигнал ChangeArrayCollids вызываеться в классе SceneExm, а слот реализуеться в классе mainW::AddArrayCollidsElements
class SceneExm

enum Mode{}

Mode описываеться в классе SceneExm.

Зарание спасибо!


Название: Re: проблема с реализацией сигнала слота
Отправлено: merke от Октябрь 16, 2010, 14:50
В каком классе производится связка?

Да ты прав ошибка в несовместимости аргументов приемника-отправителя!

Попробуй enum Mode{} определить и там и там!


Название: Re: проблема с реализацией сигнала слота
Отправлено: crossly от Октябрь 16, 2010, 15:05
а метаобъектная система знает о вашем enum??


Название: Re: проблема с реализацией сигнала слота
Отправлено: MuLLIKA от Октябрь 17, 2010, 23:00
в классе SceneExm происходит связка.

crossly, а как это определить? ошибок линковки небыло!


Название: Re: проблема с реализацией сигнала слота
Отправлено: crossly от Октябрь 18, 2010, 12:07
а ошибок и не должно было быть.... Q_ENUM


Название: Re: проблема с реализацией сигнала слота
Отправлено: MuLLIKA от Октябрь 18, 2010, 14:10
Q_ENUM
нужно указать в заголовках обоих классов?

получилось сделать прописав в обоих классах enum Mode {}

Спасибо!


Название: Re: проблема с реализацией сигнала слота
Отправлено: crossly от Октябрь 18, 2010, 16:03
объявлять в обеих классах не самое красивое решение...


Название: Re: проблема с реализацией сигнала слота
Отправлено: merke от Октябрь 18, 2010, 16:48
Ну а как тогда второй объект будет знать о существовании данного енума? если его напрямую не объявить в обоих классах?


Название: Re: проблема с реализацией сигнала слота
Отправлено: crossly от Октябрь 18, 2010, 19:43
объявить в отдельном хидере.... к примеру globals.h.... и подключить к обеим...