2016-09-19 2 views
0

У меня возникли проблемы с QwtPlot тиками.Как установить фиксированное количество тиков на QwtPlot

Ось X моего QwtPlot это:

enter image description here

я устанавливаю AxisMaxMajor 24:

dataPlot->setAxisMaxMajor(QwtPlot::xBottom, 24); 

Но это не решает мою проблему.

Мне нужно ровно 23 тика (1 ~ 23) для представления каждого часа дня. Как я могу это сделать?

QWT 6.1.0

Qt 5.3.2

ответ

1

При необходимости даты/времени, связанных клещами необходимо использовать QwtDateScaleEngine. Масштабные двигатели, основанные на десятичной системе, не будут возникать, если с чем-то в 1-24.

Если классы QwtDateScale не подходят для вашего варианта использования, вы можете установить галочки вручную (QwtPlot :: setAxisScaleDiv()).

Если у вас нет контроля над диапазонами осей (например, из-за масштабирования), окончательное решение для резервного копирования - реализовать собственный тип QwtScaleEngine. Это проще, поскольку это звучит, поскольку это просто означает возвращение галочки в каждый час для заданного диапазона.

+0

Спасибо @Uwe. У меня нет контроля над диапазоном осей (из-за масштабирования), тогда я думаю, что мне нужно реализовать собственный тип 'QwtScaleEngine', как вы сказали. Можете ли вы представить простой пример того, как я могу это сделать? – KelvinS

Смежные вопросы