Russian Qt Forum
Ноябрь 24, 2024, 17:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Координаты мыши на графике QCustomPlot  (Прочитано 5315 раз)
Raumnur
Гость
« : Июль 07, 2016, 17:46 »

Всем привет!
Проблема, сидел сам пытался, гуглил, беспонту все.
Буду рад подсказкам, судь проблемы:
Пытаюсь считать координаты мыши с графика QCustomPlot и записать в lineEdit. Для этого использую setMouseTracking(true) и void MainWindow::mouseMoveEvent(QMouseEvent *event). НО! Единственное откуда считывает координаты, это centralwidget. Думал вопрос в классе, вроде нет. Бросал на форму обычный QWidget и тоже по нулям. Заделывать QCustomPlot под centralwidget пробовал. Таким образом график просто разносится на всю форму закрывая собой абсолютно все. Что можете подсказать?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июль 07, 2016, 18:22 »

Используйте фильтр. Гуглите "Qt фильтры", "Qt event filter" и после, в обработчике событий ловите событие перемещения мышки
Записан

Dimas
Чайник
*
Offline Offline

Сообщений: 50



Просмотр профиля
« Ответ #2 : Июль 24, 2016, 22:23 »

Если еще интересно. Тоже потребовалось вывести координаты из QCustomPlot.

Сделал так в инициализации:
Код:
  connect(ui->customPlot, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(mouseMove(QMouseEvent*)));

Обработчик SLOTа:

Код:
void MainWindow::mouseMove(QMouseEvent *mouseEvent)
{
    qDebug() << ui->customPlot->xAxis->pixelToCoord(mouseEvent->pos().x())
                 << ui->customPlot->yAxis->pixelToCoord(mouseEvent->pos().y());

    QToolTip::showText(mouseEvent->globalPos(),
                       "xAxis=" + QString::number(ui->customPlot->xAxis->pixelToCoord(mouseEvent->pos().x()), 'f', 2) + "\n" +
                       "yAxis=" + QString::number(ui->customPlot->yAxis->pixelToCoord(mouseEvent->pos().y()), 'f', 2) + "\n" +

                       "xAxis2=" + QString::number(ui->customPlot->xAxis2->pixelToCoord(mouseEvent->pos().x()), 'f', 2) + "\n" +
                       "yAxis2=" + QString::number(ui->customPlot->yAxis2->pixelToCoord(mouseEvent->pos().y()), 'f', 2) + "\n",
                       this, rect());
}
Записан

qt 4.8.6, qt 5.12.4
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.098 секунд. Запросов: 23.