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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: проблема с реализацией сигнала слота  (Прочитано 3769 раз)
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.

Зарание спасибо!
Записан
merke
Гость
« Ответ #1 : Октябрь 16, 2010, 14:50 »

В каком классе производится связка?

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

Попробуй enum Mode{} определить и там и там!
Записан
crossly
Гость
« Ответ #2 : Октябрь 16, 2010, 15:05 »

а метаобъектная система знает о вашем enum??
Записан
MuLLIKA
Гость
« Ответ #3 : Октябрь 17, 2010, 23:00 »

в классе SceneExm происходит связка.

crossly, а как это определить? ошибок линковки небыло!
Записан
crossly
Гость
« Ответ #4 : Октябрь 18, 2010, 12:07 »

а ошибок и не должно было быть.... Q_ENUM
Записан
MuLLIKA
Гость
« Ответ #5 : Октябрь 18, 2010, 14:10 »

Q_ENUM
нужно указать в заголовках обоих классов?

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

Спасибо!
Записан
crossly
Гость
« Ответ #6 : Октябрь 18, 2010, 16:03 »

объявлять в обеих классах не самое красивое решение...
Записан
merke
Гость
« Ответ #7 : Октябрь 18, 2010, 16:48 »

Ну а как тогда второй объект будет знать о существовании данного енума? если его напрямую не объявить в обоих классах?
Записан
crossly
Гость
« Ответ #8 : Октябрь 18, 2010, 19:43 »

объявить в отдельном хидере.... к примеру globals.h.... и подключить к обеим...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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