Необходимо узнать, на каком объекте вызван ивент.
Проще говоря, мне необходимо определить, на pixmap'e ли кликнули мышкой, что бы рисовался path именно на нем, а нигде в другом месте... ?
Я так понимаю, что через проверку sender'а не получиться, т.к это не сигнал,да и адрес в этом вызове всегда будет 0x0 (проверял).
Смотреть, входит ли позиция вызова в пределы нужного объекта?
Кликнуть на pixmap'e невозможно, это не визуальный класс. Тебе нужно переопределять mousePressEvent() и т.п. у того виджета, который показывает твой pixmap.
Получается, что если я использую QLabel для отображения Pixmap'а, то надо определять свой виджет, наследуясь от QLabel?...
Почитал бланшета на эту тему.. Вот что попробовал :
в конструкторе :
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);
}
Andrewshkovskii,
по моему ты шиворот на выворот написал(могу ошибаться)
ты в рекогнайзер установил фильтр лэйбла. а нужно то наоборот.
Ну что бы установить фильтр лейбла - нужно его реализовать самому, отнаследовшись. Я так это понимаю. Да и в книжке последовательность такая же.
надо было вот так вот :
ui->inputSymbolFiled->installEventFilter(this);
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)