crossplatform.ru

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


  Ответ в [РЕШЕНО] через eventFillter Узнать какой объект создал эвент
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Andrewshkovskii Дата 7.12.2009, 23:52
  Ну что бы установить фильтр лейбла - нужно его реализовать самому, отнаследовшись. Я так это понимаю. Да и в книжке последовательность такая же.

надо было вот так вот :
    ui->inputSymbolFiled->installEventFilter(this);

Я понял, про что квисп сказал, извини, что оклеветал!:)
kwisp Дата 7.12.2009, 23:50
  Andrewshkovskii,
по моему ты шиворот на выворот написал(могу ошибаться)
ты в рекогнайзер установил фильтр лэйбла. а нужно то наоборот.
Andrewshkovskii Дата 7.12.2009, 23:42
  Почитал бланшета на эту тему.. Вот что попробовал :
в конструкторе :
installEventFilter(ui->inputSymbolFiled);
//ui->inputSymbolFiled -  QLabel *


И сам фильтер :
bool recognizer::eventFilter(QObject *o, QEvent *e)
{
    if (o == ui->inputSymbolFiled){
        qDebug() << "1";
        return true;
    }else
       qDebug() << "hell";
    return QWidget::eventFilter(o,e);
}

и при клике на текст лейбла, или пиксмап внутри него в консоль ничего не выводиться..в чем ошибка закралась?
SABROG Дата 7.12.2009, 23:08
 
Цитата(Andrewshkovskii @ 7.12.2009, 22:53) *
Получается, что если я использую QLabel для отображения Pixmap'а, то надо определять свой виджет, наследуясь от QLabel?...

Ага. Но если не хочется, то и installEventFilter() подойдет.
Andrewshkovskii Дата 7.12.2009, 22:53
  Получается, что если я использую QLabel для отображения Pixmap'а, то надо определять свой виджет, наследуясь от QLabel?...
SABROG Дата 7.12.2009, 22:48
  Кликнуть на pixmap'e невозможно, это не визуальный класс. Тебе нужно переопределять mousePressEvent() и т.п. у того виджета, который показывает твой pixmap.
Andrewshkovskii Дата 7.12.2009, 22:38
  Необходимо узнать, на каком объекте вызван ивент.
Проще говоря, мне необходимо определить, на pixmap'e ли кликнули мышкой, что бы рисовался path именно на нем, а нигде в другом месте... ?
Я так понимаю, что через проверку sender'а не получиться, т.к это не сигнал,да и адрес в этом вызове всегда будет 0x0 (проверял).
Смотреть, входит ли позиция вызова в пределы нужного объекта?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 2:12