Мистический вызов слота |
Здравствуйте, гость ( Вход | Регистрация )
Мистический вызов слота |
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 |
Вопрос: на основании чего хитрый метаобъектный компилятор связывает сигнал со слотом??? скорее всего ты используешь дизайнер для создания окна + подходящую нотацию записи имени слота (аля Борланд и т.п).А при использовании дизайнера делается такой трюк: QMetaObject::connectSlotsByName(...) |
|
|
chereppiter |
26.12.2012, 18:15
Сообщение
#3
|
Студент Группа: Участник Сообщений: 30 Регистрация: 12.11.2012 Пользователь №: 3595 Спасибо сказали: 0 раз(а) Репутация: 0 |
А, блин, точно, он по имени связывает. Сначала в дизайнере окна был создан слот on_horizontalSlider_sliderMoved, потом связь с ним удалена. Сейчас слот переименовал - и стало всё нормально. Спасибо
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 4:36 |