Виталий АнтиповJan. 16, 2018, 4:57 a.m.
ChartView. Отображение метки данных точки серии при наведении курсора
Добрый день! Подскажите, как отобразить метки данных точки в LineSeries при наведении курсора? Из документации понял, что перехватить событие наведения можно через onHovered(), но как получить индекс/позицию/значение нужной точки?
ChartView { id: chartIzmerHh objectName: "chartIzmerHh" property int count property var array_dateX property var array_valueY property var array_valueY1 property var array_valueY2 visible: true anchors.top: rec_filter.bottom anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom antialiasing: true legend.visible: false title: "Средняя вибрация на холостом ходу" ValueAxis { id: axiY min: 0 } DateTimeAxis { id: axiX format: "dd-MM-yyyy" min: rec_filter.date_begin max: rec_filter.date_end } LineSeries { id: line1 property bool myBool: false color: "lightgreen" axisY: axiY axisX: axiX width: 5 onHovered: { // ??? } } LineSeries { id: line2 color: "tomato" axisY: axiY axisX: axiX width: 5 } LineSeries { id: line color: "#03a9f5" axisY: axiY axisX: axiX width: 5 } Component.onCompleted: { var xx = [] var yy = [] var yy1 = [] var yy2 = [] var max = 0 for(var i=0;i<count;i++){ xx[i] = Date.parse(array_dateX[i]) yy[i] = Number(array_valueY[i]) yy1[i] = Number(array_valueY1[i]) yy2[i] = Number(array_valueY2[i]) if(yy[i]>max){ max = yy[i] } if(yy1[i]>max){ max = yy1[i] } if(yy2[i]>max){ max = yy2[i] } line.append(xx[i], yy[i]) line1.append(xx[i], yy1[i]) line2.append(xx[i], yy2[i]) } max = Math.round(max) + 1 axiY.max = max } }
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
AD
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
m
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Last comments
Django - Tutorial 055. How to write auto populate field functionality Freckles because of several brand names retin a, atralin buy generic priligy
QML - Tutorial 035. Using enumerations in QML without C ++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
Qt/C++ - Lesson 052. Customization Qt Audio player in the style of AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
Heap sorting algorithm The role of raloxifene in preventing breast cancer priligy precio
PyQt5 - Lesson 006. Work with QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
Now discuss on the forum
добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
IscanderCheOct. 31, 2024, 3:43 p.m.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь МаксимовOct. 3, 2024, 4:05 a.m.
Добрый день!
Обработчик onHovered навешивается автоматически на сигнал hovered.
true
, and when the mouse moves away again, it turnsfalse
.Спасибо, тоже нашел и получил значения благодаря point.x и point.y. Отформатировал значение даты и вывел искомые значения в прямоугольник. Теперь столкнулся с проблемой перемещения прямоугольника к курсору мыши при срабатывании onHovered(). Использовать MouseArea и брать оттуда mouseX и mouseY не вариант, так как MouseArea перекроет LineSeries и события onHovered никогда не получим. Подскажите, есть какие-нибудь варианты решить проблему?
Пока мыслей нет, но попробуйте всё-таки MouseArea. Дело в том, что у неё есть свойство propagateComposedEvents , которое по умолчанию установлено на false , а если его установить на true, то события должны передаваться на объекты, которые перекрываются этой самой MouseArea.
Спасибо, попробую! Тут еще вариант придумал - создать ScatterSeries и при onHovered создать точку с требуемыми координатами. Попробовал scatter.append(point.x, point.y) - получается очень красиво. Только надо изучить как ее заменять на новую и как форматировать значения pointLabels
У ScatterSeries есть методы
Спасибо за ответ! Кстати, propagateComposedEvents: true не дает получить событие onHovered .
Если честно у меня пока только одна идиотская идея есть. Брать по таймеру текущую позицию курсора глобально из C++ специальным классом. И этот класс будет зарегистрирован в QML, у него будет сигнал, который будет высылать информацию о положении курсора, что позволит обновлять информацию так, как вам будет нужно (используя конечно манипуляции с мапингом глобальных координат в координаты графика).
Спасибо большущее за советы! Все получилось через ScatterSeries. Методы remove() как-то сходу не дались, удаляет в первый раз, а потом программа падает... Не стал тратить время и воспользовался методом replace(). Все идеально, работает шустро! Еще раз спасибо!