Всем добрый вечер!
Вопрос таков:
QPaintWidget *wgt; //создал
wgt = new QPaintWidget(ui->groupBox); //поместил
ui->gridLayout->addWidget(wgt); //добавил в лайаут
и теперь я хочу чтобы, когда мышка двигалась над wgt , то выводились координаты мышки
вот так выводится, когда я везде провожу
qApp->installEventFilter( this );
вот так выводится, когда у меня зажата любая кнопка на мыши
wgt->installEventFilter( this );
в этих случаях он вообще ничего не делает
ui->gridLayout->installEventFilter( this );
ui->groupBox->installEventFilter( this );
как мне быть??
вот код для мыши
bool MainWindow::eventFilter( QObject *obj, QEvent *evt )
{
if( evt->type() == QEvent::MouseButtonPress )
{
QMouseEvent *m = static_cast< QMouseEvent * >( evt );
QWidget *w = QApplication::widgetAt(m->globalPos());
if( w){
/*...*/
wgt->show();
}
}
if( evt->type() == QEvent::MouseMove)
{
QMouseEvent *m = static_cast< QMouseEvent * >( evt );
QWidget *w = QApplication::widgetAt(m->globalPos());
if( w ){
ui->label->setText( QString::number(m->x())+" " + QString::number(m->y()) );
}
}
return QMainWindow::eventFilter( obj, evt );
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}