Название: Выгрузка графиков QWT в файл Отправлено: Irina от Июнь 29, 2017, 12:16 Добрый день, уважаемые!
Задача: выгрузить график в изображение с сохранением всех цветов. Сами линии на графике выгружаются цветные, а вот шкала Y с подписью графика теряет цвет, становится просто белой. На картинке все три шкалы должны быть своего цвета, а, как видите, они просто прозрачные. Вот код: Код: QwtPlotRenderer renderer; Название: Re: Выгрузка графиков QWT в файл Отправлено: Racheengel от Июнь 29, 2017, 13:29 через QPixmap::grabWidget стоит попробовать.
Название: Re: Выгрузка графиков QWT в файл Отправлено: __Heaven__ от Июнь 29, 2017, 13:30 Код
Название: Re: Выгрузка графиков QWT в файл Отправлено: Irina от Июнь 30, 2017, 07:28 через QPixmap::grabWidget стоит попробовать. Пробовала, но это не подходит: вытаскивает картинку в таком виде, в каком виджет в момент граба и находится. А мне нужно подгонять размеры под размер бумаги.Название: Re: Выгрузка графиков QWT в файл Отправлено: Irina от Июнь 30, 2017, 07:29 Код
Название: Re: Выгрузка графиков QWT в файл Отправлено: __Heaven__ от Июнь 30, 2017, 09:57 Я не совсем понял про цвет шкалы. Можно принтскрин?
Название: Re: Выгрузка графиков QWT в файл Отправлено: Irina от Июнь 30, 2017, 10:04 Я не совсем понял про цвет шкалы. Можно принтскрин? Смотрите, это график в том виде, в каком он на форме. Два цвета линий и такого же цвета шкала. Цвет линий сохраняется, а цвет шкал - нет. Я бы и использовала grabWidget, но размеры... мне нужно подгонять под размеры бумаги, с учётом, что на листе ещё есть небольшая таблица в верхней части, поэтому и очень важны размеры. Поэтому QwtPlotRenderer - идеальное решение, но отбрасывается расцветка шкалы.Название: Re: Выгрузка графиков QWT в файл Отправлено: __Heaven__ от Июнь 30, 2017, 11:19 Можно попробовать переопределить метод QwtPlotRenderer::renderScale. При отрисовке графика этот метод дёргается для каждой оси.
Название: Re: Выгрузка графиков QWT в файл Отправлено: Irina от Июнь 30, 2017, 11:26 Можно попробовать переопределить метод QwtPlotRenderer::renderScale. При отрисовке графика этот метод дёргается для каждой оси. Можно подробней, пожалуйста? А то у меня дела с Qwt идут очень тяжело, скудная документация просто поражает.Название: Re: Выгрузка графиков QWT в файл Отправлено: Irina от Июль 03, 2017, 07:09 Можно попробовать переопределить метод QwtPlotRenderer::renderScale. При отрисовке графика этот метод дёргается для каждой оси. Что писать в теле метода? Хотя бы на словах расскажите, пожалуйста.Название: Re: Выгрузка графиков QWT в файл Отправлено: __Heaven__ от Июль 03, 2017, 07:43 рисовать фон в предоставленном прямоугольнике, затем вызывать метод renderScale базового класса, чтобы тот уже нарисовал шкалу. Вроде так.
Хотел бы поинтересоваться, как на виджет задается градиент? Средствами qwt? Название: Re: Выгрузка графиков QWT в файл Отправлено: Irina от Июль 03, 2017, 08:01 Весь проект достался мне в наследство, так сказать. Градиент я не делала сама, делюсь кодом. Вроде, то.
Код: QPalette palette = scaleWidget->palette(); Подскажите, пожалуйста. В методе QwtPlotRenderer::renderScale(const QwtPlot * plot, QPainter * painter, int axisId, int startDist, int endDist, int baseDist, const QRectF & rect) параметры startDist - начальное значение шкалы endDist - конечное значение шкалы но не понимаю что значат и как определить baseDist и rect. Название: Re: Выгрузка графиков QWT в файл Отправлено: __Heaven__ от Июль 03, 2017, 09:22 Подскажите, пожалуйста. В методе QwtPlotRenderer::renderScale(const QwtPlot * plot, QPainter * painter, int axisId, int startDist, int endDist, int baseDist, const QRectF & rect) параметры start и end Dist - это отступы судя по всему от начала данного прямоугольникаstartDist - начальное значение шкалы endDist - конечное значение шкалы но не понимаю что значат и как определить baseDist и rect. Код baseDist, наверное, это отступы в поперечном направлении (для оси x по y, а для оси y по x) rect, как я понимаю и есть размеры холста, на котором происходит рисование с помощью painter. |