Пытаюсь выводить координаты XY возле курсора мыши. С самим просчетом координат все норм, но вот с расположение текста проблема. Не могу никак расчитать положение курсора и расположить рядом с ним текст.
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
//Вывод координат возле курсора
if(object == ui->chart1)
{
if(event->type() == QEvent::MouseMove)
{
QMouseEvent* mouse_event = dynamic_cast<QMouseEvent*>(event);
if( mouse_event->pos().x() < 30 || mouse_event->pos().y() > (ui->chart1->height() - 30) )
{
Coordinates->setVisible(false);
ui->chart1->replot();
}
else {
double x, y;
x = int(this->ui->chart1->xAxis->pixelToCoord(mouse_event->pos().x()));
y = int(this->ui->chart1->yAxis->pixelToCoord(mouse_event->pos().y()));
QPoint coord;
coord.setX(int( x + 80 ));
coord.setY(int( y + 220 ));
Coordinates->setText(QString::number(x) + ":" + QString::number(y));
Coordinates->setVisible(true);
Coordinates->position->setCoords(coord);
ui->chart1->replot();
}
return false;
}
}
}
щас вывод производится но неправильно: т.к. если менять масштаб то текст с координатами уезжает ....: Заранее спасибо!
РЕШЕНИЕ
QPoint coord;
coord.setX(int( x + (ui->chart1->xAxis->pixelToCoord(40) - ui->chart1->xAxis->pixelToCoord(0)) ));
coord.setY(int( y + (ui->chart1->yAxis->pixelToCoord(-20) - ui->chart1->yAxis->pixelToCoord(0)) ));
Вы смещаете лейбл в координатах графика, а надо в пикселях. Из-за этого при зумировании надпись съезжает. В строке
coord.setX(int( x + 80 ));
Вместо + 80
надо написать что-то типа (псевдокод):
coord.setX(int( x + (pixelsToCoord(80) - pixelsToCoord(0))));
Где 80 это расстояние в пикселях от точки курсора до надписи, а конструкция (pixelsToCoord(80) - pixelsToCoord(0))
это длина смещения в реальных координатах графика. Это обеспечит вам одинаковое смещение при любом зуме.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть проект в Visual Studio, в котором я подключаю библиотеки OpenGLСтолкнулся с необходимостью запаковать его вместе со всеми текстурами и библиотеками...
Есть таблица из блоковСтроки добавляются как надо, но при попытке добавить ещё один блок, нижняя строка не смещается, а находит на блок
хочу поднять блок с картинками регистрации и логина на 50 пикселей в верхно при использовании margin-top:50px; не работает почему хз