crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Не могу понять как работает сигнал!
Roston
  опции профиля:
сообщение 16.2.2011, 19:09
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 11.2.2010
Пользователь №: 1463

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




Репутация:   0  


Здравствуйте. В этом уроке http://www.doc.crossplatform.ru/qt/4.4.3/t...torial-t10.html мы объявляем в классе CannonField сигналы forceChanged и angleChanged.
Но реализации сигналов дальше нету. Подскажите пожалуйста как тогда в этом коде
 connect(force, SIGNAL(valueChanged(int)),
             cannonField, SLOT(setForce(int)));


мы знаем какое значение передается в setForce. Не могу до конца понять!
Наперед спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.2.2011, 19:15
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


в коде, который ты привел - устанавливается соединение.
а реально вызывается сигнал в строчке :
emit valueChanged(/*тут реальное значение которое передаётся в слот*/);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Roston
  опции профиля:
сообщение 16.2.2011, 20:17
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 11.2.2010
Пользователь №: 1463

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




Репутация:   0  


Тоесть если взять emit angleChanged(currentAngle); то дальше в слот будет передаваться параметр currentAngle?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.2.2011, 20:21
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(Roston @ 16.2.2011, 20:17) *
Тоесть если взять emit angleChanged(currentAngle); то дальше в слот будет передаваться параметр currentAngle?

да
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Obey-Kun
  опции профиля:
сообщение 25.2.2011, 3:57
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 96
Регистрация: 24.3.2010
Пользователь №: 1556

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




Репутация:   0  


Почитай Шлее. Он есть на http://obey.su/books. Но лучше купи в магазине.
Он там про сигналы отлично написал.

Сообщение отредактировал Obey-Kun - 25.2.2011, 3:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.2.2011, 6:38
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Roston @ 16.2.2011, 21:09) *
Но реализации сигналов дальше нету.
реализацией сигналов занимается "метаобъектный компилятор", он генерирует файл С++, который имеет расширение *.moc
В приведённом примере есть файл - cannonfield.h.
Если этот файл указан в pro-файле в списке HEADERS, то для него будет вызван метаобъектный компилятор (moc). Который сгенерирует из него исходник moc_cannonfield.cpp, в этом исходнике будет реализация сигналов и ещё некоторых метаобъектных штучек. Ну и файл moc_cannonfield.cpp, разумеется будет добавлен в процесс компиляции.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 17.1.2021, 19:41