![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
_Vitaliy_ |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Если да, то откликнитесь, есть несколько вопросов...
|
|
|
Steklova Olga |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Да, приходилось немного...
|
|
|
_Vitaliy_ |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Да, приходилось немного... Это замечательно. Есть несколько графиков (порядка 10) на "плоскости", необходимо реализовать возможность выбора каждого отдельного графика. Сделано через:
Реализовать ограничение перемещения по оси OX. Сделано через:
Необходимо реализовать: 1. Возможность перемещения произвольного графика по оси OY (остальные графики неподвижны). 2. Первоначально, при отображении графиков, значения на оси OY отсутствуют, при выборе графика, появляется его ось OY со значениями в масштабе выбранного графика. При снятии выделения графика, значения по оси OY пропадают. Для пояснения прикладываю изображение (в аттаче). Сообщение отредактировал _Vitaliy_ - 28.8.2014, 11:14 |
|
|
Steklova Olga |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
При перемещении произвольного графика по оси OY значения оцифровки этого графика не должны меняться?
То есть, если у этого графика были значения в диапазоне 100...400, то при перемещении этого графика вверх или вниз этот диапазон сохраняется на оцифровке? А это не забыл?
Мне не приходилось решать такую задачу. Может лучше поискать ответ на родном форуме qcustomplot? Смотри тут |
|
|
_Vitaliy_ |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Начинаем с простого...
Необходимо реализовать: 1. Возможность перемещения произвольного графика по оси OY (остальные графики неподвижны). Давайте сначала попробуем "победить" 1-й пункт. Цитата То есть, если у этого графика были значения в диапазоне 100...400, то при перемещении этого графика вверх или вниз этот диапазон сохраняется на оцифровке? да, диапазон должен быть сохранен. Цитата Может лучше поискать ответ на родном форуме qcustomplot? был я там, но до конца тема (моя) не раскрыта (т.е. попробуйте вот-так или так и т.д. но рабочего куска кода я не нашел)...
|
|
|
Steklova Olga |
![]()
Сообщение
#6
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
А как ты рисуешь несколько графиков на одном customPlot? Так?
Если у одного графика значения в диапазоне 100...400 и у другого графика значения в диапазоне 100...400, а рисуешь ты их друг на другом, то по оси OY на самом деле у них разная оцифровка, не так ли? Например, у первого 0+100...0+400, у второго 500+100...500+400. попробуйте вот-так или так и т.д. но рабочего куска кода я не нашел вот и пробуй |
|
|
_Vitaliy_ |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Рисую стандартно:
З.Ы. Попробую как Вы предложили... Попробовал как Вы предложили, эффект тот-же. Получается что какой график идет первым, тот и является "основным", потому что при выборе второго графика все-равно перемещается первый... Наверное нужно каким-то образом при выборе второго графика сделать его основным, но я пока это к сожалению не победил... |
|
|
Steklova Olga |
![]()
Сообщение
#8
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Цитата То есть, если у этого графика были значения в диапазоне 100...400, то при перемещении этого графика вверх или вниз этот диапазон сохраняется на оцифровке? да, диапазон должен быть сохранен. Смотрю на твои картинки. У синего графика оцифровка -150...-50. Над ним красный с диапазоном 100...300. Если ты переместишь синий график выше красного, то у синего все равно должна остаться оцифровка -150...-50? Ты зачем-то указываешь для первого графика customPlot->xAxis, customPlot->yAxis, для второго customPlot->xAxis2, customPlot->yAxis2. Но на картинке у тебя больше двух графиков. (xAxis, yAxis) - это оцифровка слева, (xAxis2, yAxis2) - справа. Судя по картинке, тебе надо, чтобы у всех графиков была оцифровка слева. Сообщение отредактировал Steklova Olga - 29.8.2014, 12:40 |
|
|
Steklova Olga |
![]()
Сообщение
#9
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Получается что какой график идет первым, тот и является "основным", потому что при выборе второго графика все-равно перемещается первый... Ты не прав. Это у тебя не первый график перемещается. У первого графика значения точек-то не изменяются, они сохраняются, график как-бы нарисован на области customPlot'а. А прокручивается сама область customPlot'а с теми графиками, у которых указано customPlot->xAxis, customPlot->yAxis. Если ты для нескольких графиков укажешь customPlot->xAxis, customPlot->yAxis, то область customPlot'а будет прокручиваться со всеми этими графиками. А вот если тебе надо, чтобы график именно двигался относительно области customPlot'а, то это совсем другое дело. Вместо надо писать так:
Сообщение отредактировал Steklova Olga - 29.8.2014, 13:16 |
|
|
_Vitaliy_ |
![]()
Сообщение
#10
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Цитата А прокручивается сама область customPlot'а с теми графиками, у которых указано customPlot->xAxis, customPlot->yAxis. Если ты для нескольких графиков укажешь customPlot->xAxis, customPlot->yAxis, то область customPlot'а будет прокручиваться со всеми этими графиками. Я с Вами абсолютно согласен, но мне нужно чтобы эти графики двигались по оси ОУ независимо. Т.е. при первом отображении формы все графики должны быть "завязаны" в конструкторе на оси xAxis и yAxis и мы можем масштабировать все графики синхронно. При выборе графика №1, график №2 нужно переназначить на оси xAxis2 и yAxis2 и наоборот при выборе график №2 переназначить на xAxis и yAxis, а график №1 на xAxis2 и yAxis2 чтобы №1 был неподвижен а №2 можно было перемещать или я заблуждаюсь? Сообщение отредактировал _Vitaliy_ - 29.8.2014, 13:47 |
|
|
Steklova Olga |
![]()
Сообщение
#11
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
ты не ответил на сообщение #8
|
|
|
Steklova Olga |
![]()
Сообщение
#12
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
graphics()
on_btn_green_check_clicked()
on_btn_green_uncheck_clicked()
|
|
|
Steklova Olga |
![]()
Сообщение
#13
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
а для оцифровки
on_btn_green_check_clicked()
on_btn_green_uncheck_clicked()
|
|
|
_Vitaliy_ |
![]()
Сообщение
#14
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Отвечаю на 8 пост.
Цитата Если ты переместишь синий график выше красного, то у синего все равно должна остаться оцифровка -150...-50? Да, т.е. синхронно для всех графиков должен работать только "ресайз" по оси ОХ. По оси ОУ для каждого отдельного графика, т.е. выбрали график №N, отмасштабировали (при необходимости), передвинули (при необходимости) масштаб и местоположение этого графика остается неизменным до следующего его выбора. Цитата Ты зачем-то указываешь для первого графика customPlot->xAxis, customPlot->yAxis, для второго customPlot->xAxis2, customPlot->yAxis2. Но на картинке у тебя больше двух графиков. (xAxis, yAxis) - это оцифровка слева, (xAxis2, yAxis2) - справа. про xAxis, yAxis, xAxis2, yAxis2 и их расположение мы в курсе. Цитата Судя по картинке, тебе надо, чтобы у всех графиков была оцифровка слева. При первоначальном открытии окна с графиками видна только ось ОХ и все, при выборе произвольного графика подсвечивается ось OY выбранного графика, и масштаб оси ОУ этого графика соответствует размаху по ОУ этого графика. на 12-13 пост, сейчас попробую поколдовать, сегодня-завтра отпишусь, но все равно спасибо за соучастие. |
|
|
_Vitaliy_ |
![]()
Сообщение
#15
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Доброго времени суток.
Посмотрел Ваши решения, немного недопонял насчет использования кнопок вроде как нет.На всякий случай прикладываю свою реализацию через
З.ы. хотел 7Z архивом скинуть но что-то система не пропускает, тогда портянка mainwindow.cpp: Раскрывающийся текст
зипом получилось... Сообщение отредактировал _Vitaliy_ - 30.8.2014, 8:37
Прикрепленные файлы
|
|
|
Steklova Olga |
![]()
Сообщение
#16
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Насчет моего кода... Кинь на свое окно рядом с компонентом customPlot две кнопки, к их сигналам clicked() привяжи слоты, текст которых я привела. Это для зеленого графика имитация сигналов "зеленый график выбран", "отмена выбора зеленого графика". Числа 1.0, 2.0, 3.0 относятся именно к зеленому графику, когда к нему привязана моя функция этого графика.
Запускаешь. Не выбирая графиков, можно подвинуть их все вместе или отмасштабировать их все вместе. Нажимаешь первую кнопку, видишь оцифровку зеленого графика. Например, двигаешь его. В это время остальные графики стоят на месте. Но когда ты после этого нажимаешь вторую кнопку (как-бы снимая выделение эеленого графика), то этот зеленый график КОНЕЧНО возвращается туда, где он был до нажатия кнопок, а не остается визуально на тех пикселах, куда ты его двигал. Потому что, пикселы пикселами, а значения-то точек зеленого графика ты не изменил. customPlot - как прозрачный лист, на котором нарисованы графики. А когда ты одни графики привязывешь к правой оцифровке, а другие - к левой, то получаются два прозрачных листа, один неподвижный, а другой подвижный, но в окне ты видишь их оба сразу. На твоем месте я посмотрела бы доку по классам QCPItemPosition, QCPItemAnchor, QCPAbstractPlottable, и все же задала вопрос на родном форуме qcustomplot. Успехов. |
|
|
_Vitaliy_ |
![]()
Сообщение
#17
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
пока не "победил" адекватное масштабирование... Вы в мой проект не заглядывали?
|
|
|
Steklova Olga |
![]()
Сообщение
#18
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
я смотрела "твой" проект - искуроченный тобою мой тестовый пример.
мне надоело повторять десять раз одно и то же, я уже все сказала. запусти мой пример, но с кнопками - увидишь, что получается. читай доку по классам. мне по работе они сейчас не нужны, я не буду в них разбираться, чтобы тебе пересказывать. точка. |
|
|
_Vitaliy_ |
![]()
Сообщение
#19
|
Студент ![]() Группа: Участник Сообщений: 59 Регистрация: 20.11.2008 Пользователь №: 428 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
спасибо, честно говоря 17 сообщение я написал не видя Вашего 16, в котором Вы подробно все расписали, а в 18 сообщении вы меня просто "порвали" ...
хорошего кода... Сообщение отредактировал _Vitaliy_ - 1.9.2014, 15:31 |
|
|
skyer_ |
![]()
Сообщение
#20
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 2.3.2009 Пользователь №: 584 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Приветствую, нужен совет как нарисовать горизонтальные гистограммы на qcustomplot.
|
|
|
Steklova Olga |
![]()
Сообщение
#21
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Приветствую, нужен совет как нарисовать горизонтальные гистограммы на qcustomplot.
|
|
|
skyer_ |
![]()
Сообщение
#22
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 2.3.2009 Пользователь №: 584 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Приветствую, нужен совет как нарисовать горизонтальные гистограммы на qcustomplot.
Благодарю, сейчас буду пробовать. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.4.2025, 7:13 |