crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Мистический вызов слота
chereppiter
  опции профиля:
сообщение 26.12.2012, 13:02
Сообщение #1


Студент
*

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

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




Репутация:   0  


Есть класс (пусть это класс MySlider), который наследуется от QSlider. В одном из его методов эмитится сигнал sliderMoved. В виджете, на котором находится объект класса MySlider, есть слот onSliderMoved. Этот слот нигде в проекте не связывается с сигналом sliderMoved объекта класса MySlider (раньше связывался, но сейчас этот код закомментирован). Тем не менее каким-то образом слот onSliderMoved вызывается при эмите сигнала sliderMoved (если закомментировать emit sliderMoved, то слот не вызывается). Вопрос: на основании чего хитрый метаобъектный компилятор связывает сигнал со слотом???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.12.2012, 17:49
Сообщение #2


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

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

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




Репутация:   94  


Цитата(chereppiter @ 26.12.2012, 15:02) *
Вопрос: на основании чего хитрый метаобъектный компилятор связывает сигнал со слотом???
скорее всего ты используешь дизайнер для создания окна + подходящую нотацию записи имени слота (аля Борланд и т.п).
А при использовании дизайнера делается такой трюк:
QMetaObject::connectSlotsByName(...)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
chereppiter
  опции профиля:
сообщение 26.12.2012, 18:15
Сообщение #3


Студент
*

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

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




Репутация:   0  


А, блин, точно, он по имени связывает. Сначала в дизайнере окна был создан слот on_horizontalSlider_sliderMoved, потом связь с ним удалена. Сейчас слот переименовал - и стало всё нормально. Спасибо :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 19.4.2024, 4:36