Связка слота и сигнала разных объектов |
Здравствуйте, гость ( Вход | Регистрация )
Связка слота и сигнала разных объектов |
AD |
15.1.2009, 14:18
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Такая ситуация. Есть виджет отрисовки карты, который я переопределил (сделал наследника от QWidget). В нем есть слот, который определяется, когда я в контекстном меню нажимаю определенную галочку.
Каким образом мне определить слот в главном окне так, чтобы он реагировал на то же самое действие? Чтобы не быть голословным, вот небольшой примерчик кода:
|
|
|
Litkevich Yuriy |
15.1.2009, 16:44
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Такая ситуация. Есть виджет отрисовки карты, который я переопределил (сделал наследника от QWidget). Этот виджет называется QTrackWidget? Если да, то идем дальше:В нем есть слот, который определяется, когда я в контекстном меню нажимаю определенную галочку. галочка, видимо, посылает сигнал. Который соединен в классе QTrackWidget с его же слотом? Если да, то идем дальше:Каким образом мне определить слот в главном окне так, чтобы он реагировал на то же самое действие? слот определяется как обычно.Ключевой момент здесь это сигнал от галочки, нужно его сделать доступным из главного окна. Если галочка принадлежит виджету QTrackWidget, то делать галочку видимой для других классов плохой вариант. Я бы сделал так: В классе QTrackWidget определил бы сигнал "щелкнули галочку", а в конструкторе QTrackWidget, где видимо создается галочка и соеденяется со слотом QTrackWidget'а, соеденил сигнал галочки с сигналом QTrackWidget::"щелкнули галочку". Тогда сигнал будет еще и ретранслироватся (предаваться дальше). Затем в главном окне после создания экземпляра QTrackWidget, соеденил бы сигнал QTrackWidget::"щелкнули галочку" с подходящим слотом главного окна. |
|
|
Текстовая версия | Сейчас: 21.12.2024, 20:23 |