[РЕШЕНО] через eventFillter Узнать какой объект создал эвент, если он не наследован от QObject... |
Здравствуйте, гость ( Вход | Регистрация )
[РЕШЕНО] через eventFillter Узнать какой объект создал эвент, если он не наследован от QObject... |
Andrewshkovskii |
7.12.2009, 22:38
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Необходимо узнать, на каком объекте вызван ивент.
Проще говоря, мне необходимо определить, на pixmap'e ли кликнули мышкой, что бы рисовался path именно на нем, а нигде в другом месте... ? Я так понимаю, что через проверку sender'а не получиться, т.к это не сигнал,да и адрес в этом вызове всегда будет 0x0 (проверял). Смотреть, входит ли позиция вызова в пределы нужного объекта? Сообщение отредактировал Andrewshkovskii - 8.12.2009, 0:03 |
|
|
SABROG |
7.12.2009, 22:48
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Кликнуть на pixmap'e невозможно, это не визуальный класс. Тебе нужно переопределять mousePressEvent() и т.п. у того виджета, который показывает твой pixmap.
|
|
|
Andrewshkovskii |
7.12.2009, 22:53
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Получается, что если я использую QLabel для отображения Pixmap'а, то надо определять свой виджет, наследуясь от QLabel?...
|
|
|
SABROG |
7.12.2009, 23:08
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
Andrewshkovskii |
7.12.2009, 23:42
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Почитал бланшета на эту тему.. Вот что попробовал :
в конструкторе :
И сам фильтер :
и при клике на текст лейбла, или пиксмап внутри него в консоль ничего не выводиться..в чем ошибка закралась? |
|
|
kwisp |
7.12.2009, 23:50
Сообщение
#6
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Andrewshkovskii,
по моему ты шиворот на выворот написал(могу ошибаться) ты в рекогнайзер установил фильтр лэйбла. а нужно то наоборот. Сообщение отредактировал kwisp - 7.12.2009, 23:51 |
|
|
Andrewshkovskii |
7.12.2009, 23:52
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Ну что бы установить фильтр лейбла - нужно его реализовать самому, отнаследовшись. Я так это понимаю. Да и в книжке последовательность такая же.
надо было вот так вот :
Я понял, про что квисп сказал, извини, что оклеветал!:) Сообщение отредактировал Andrewshkovskii - 8.12.2009, 0:02 |
|
|
Текстовая версия | Сейчас: 27.12.2024, 21:23 |