Название: Передача строки из фильтра события или Почему ничего нет:( [РЕШЕНО] Отправлено: ejik v tumane от Апрель 04, 2013, 15:13 Решил на днях посмотреть что за зверь такой Qt. И решил написать программу отличную от хеловорлда.
Суть такая: при наведении мыши на конопку в лейбле отображается имя объекта (кнопки), если кто-то предложит другой вариант например через текст кнопки рад буду посмотреть. Программа вроде как обрабатывает события и имена кнопок в заглушке-месаже появляются исправно (в отлачике тоже всё ок). Но вот после отправки сиглала беда, слот сигнал не обрабатывает, и сиглал ведёт себя странно (при трасировке connectа отладчик замирает в раздумьях при просмотре содержимого строки name_string). Немогу понять вчём дело почему не отсылается строка в сигнале, или не принимается слотом. Просьба не пинать, как говориться простить, понять и помочь. ниже превожу код всего что есть... (много шелуши с настройками кнопок но удалять не стал) main: Код: #include <QtGui> заголовочный файл меню: Код: #ifndef TOP_MENU_H реализация меню: Код: #include <QtGui> заголовочный файл события Код: #ifndef NAME_FILTER_H реализация события: Код: #include <QtGui> Привёл всё как есть, извиняюсь за объём, но я не могу понять где зарыта собака. Название: Re: Передача строки из фильтра события или Почему ничего нет:( Отправлено: Bepec от Апрель 04, 2013, 15:21 Я советую запаковать проект в архив и залить куда нить.
PS глаза в конце дня от кода разбегаются :D Название: Re: Передача строки из фильтра события или По Отправлено: mutineer от Апрель 04, 2013, 15:21 Ты ставишь фильтром на объекты три разных инстанса Name_Filter, но к их сигналам не коннектишься, а коннектишься к сигналу от name_filter, который ни к кому ни прицеплен как фильтр. Итого три безымянных объекта исправно фильтруют и высылают сигналы вникуда
Название: Re: Передача строки из фильтра события или Почему ничего нет:( Отправлено: ejik v tumane от Апрель 04, 2013, 15:29 К сожалению я не настолько ловко в данный момент общаюсь с Qt чтобы так ловко всё исправить, можно ткнуть меня носом ;D
я примерно догадываюсь в чём дело, но примеров реализации подобного у меня нет. так?: pcmRek_work->installEventFilter(name_filter(pcmRek_work)); Название: Re: Передача строки из фильтра события или Почему ничего нет:( Отправлено: mutineer от Апрель 04, 2013, 15:32 Вот ты подписываешься на сигнал у объекта name_filter:
Код: name_filter = new Name_Filter; А вот тут ты ставишь в качестве фильтра совершенно другой объект, на сигнал которого ты не подписан. Но именно этот объект высылает сигнал при наведении на pcmExit: Код: pcmExit->installEventFilter(new Name_Filter(pcmExit)); Название: Re: Передача строки из фильтра события или Почему ничего нет:( Отправлено: mutineer от Апрель 04, 2013, 15:36 так?: pcmRek_work->installEventFilter(name_filter(pcmRek_work)); Странная строка... name_filter(pcmRek_work) - для чего тут pcmRec_work? Название: Re: Передача строки из фильтра события или Почему ничего нет:( Отправлено: ejik v tumane от Апрель 04, 2013, 15:38 mutineer
Спасибо, спасли. Название: Re: Передача строки из фильтра события или Почему ничего нет:( Отправлено: ejik v tumane от Апрель 04, 2013, 15:39 так?: pcmRek_work->installEventFilter(name_filter(pcmRek_work)); Странная строка... name_filter(pcmRek_work) - для чего тут pcmRec_work? Поспешишь как говориться)) Сделал уже в программе, всё работает! Это по невнимательности, или глупости Код: pcmRek_work->installEventFilter(name_filter); Название: Re: Передача строки из фильтра события или Почему ничего нет:( + ещё вопросик Отправлено: ejik v tumane от Апрель 04, 2013, 19:25 В связи с реализацией вышеописаного возник ещё один вопросик.
Всё конечно здорово и лейбл исправно ловит названия кнопок, но вот есть одно изменение в поведении этих самых кнопок, если раньше они подсвечивались при наведении курсора, то теперь они не поколебимы. Есть ли какой-нибудь влаг для изменения такого поведения, или надо изобретать подсветку? К тому же как я понял стандартная подсветка продиктована стилем операционной системы, что нехотелось бы нарушать. Название: Re: Передача строки из фильтра события или Почему ничего нет:( + ещё вопросик Отправлено: kambala от Апрель 04, 2013, 22:06 просто не возвращай тру для перехваченного события
Название: Re: Передача строки из фильтра события или Почему ничего нет:( + ещё вопросик Отправлено: ejik v tumane от Апрель 05, 2013, 08:47 просто не возвращай тру для перехваченного события Спасибо! Ставлю теме решно. |