Название: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 13:43 Помогите понять почему не отображается крайне левое значение шкалы
Вот код Код
Название: Re: QWT(QwtThermo) Отправлено: vizir.vs от Июль 29, 2014, 15:00 А если так написать?
Код: d_thermo->setScaleMaxMajor(3); Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 15:02 нет :-\
Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 15:04 А если так написать? не сработает.Код: d_thermo->setScaleMaxMajor(3); предлагаю заменить d_thermo->setScale(min,max) на d_thermo->setScale(0,max) Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 15:10 но у меня до нуля минимальное значение не доходит,
оно может быть очень маленьким, но только не нулем В слоте setScale при прокрутке wheel устанавливается новый диапазон шкалы Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 15:10 d_thermo->setScaleMaxMajor(100)
тоже поможет. только эффект плохой... мне кажется, что это особенности либы Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 15:12 ??? да вы так уверены
Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 15:15 d_thermo->setScaleMaxMajor(100) тоже поможет. только эффект плохой... мне кажется, что это особенности либы Да действительно помогло. Только такой вариант меня не устраивает :( Название: Re: QWT(QwtThermo) Отправлено: vizir.vs от Июль 29, 2014, 15:17 а попробуй через
Код: QwtLinearScaleEngine->divedScale Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 15:25 и что это даст?
Название: Re: QWT(QwtThermo) Отправлено: vizir.vs от Июль 29, 2014, 15:37 с помощью QwtScaleDiv можно расставить подписи и метки на оси. А QwtLinearScaleEngine->divedScale позволит сделать это автоматически.
Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 15:39 Да походу действительно это особенности либы.
Поменял диапазон шкалы 0 до 100 и все норм. И как от этого избавится??? Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 15:41 с помощью QwtScaleDiv можно расставить подписи и метки на оси. А QwtLinearScaleEngine->divedScale позволит сделать это автоматически. Сделал это, но не помогло Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 15:52 Да походу действительно это особенности либы. Я скажу больше.Поменял диапазон шкалы 0 до 100 и все норм. И как от этого избавится??? Вы можете поставить диапазон 1-100. Получите тот же эффект. Просто либа пытается округлить значения на шкале, соответственно, минимальное круглое значение (0) лежит вне шкалы... Даже так называемый тик отсутствует в начале шкалы Советую почитать про void QwtThermo::setScaleDraw ( QwtScaleDraw * scaleDraw ), правда, я с этим не разбирался Название: Re: QWT(QwtThermo) Отправлено: vizir.vs от Июль 29, 2014, 15:52 А если без QwtLinearScaleEngine->divedScale, а напрямую создать
Код: QwtScaleDiv::QwtScaleDiv ( double lowerBound, Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 16:04 Да походу действительно это особенности либы. Я скажу больше.Поменял диапазон шкалы 0 до 100 и все норм. И как от этого избавится??? Вы можете поставить диапазон 1-100. Получите тот же эффект. Просто либа пытается округлить значения на шкале, соответственно, минимальное круглое значение (0) лежит вне шкалы... Даже так называемый тик отсутствует в начале шкалы Советую почитать про void QwtThermo::setScaleDraw ( QwtScaleDraw * scaleDraw ), правда, я с этим не разбирался М-да интересно, но в примерах есть интересный вариант и там шкала идет от 10-1000(но правда она логарифмическая ) Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 16:38 Значит выход один: делать логарифмическую шкалу :D Шучу
Base class for scale engines. A scale engine tries to find "reasonable" ranges and step sizes for scales. The layout of the scale can be varied with setAttribute(). Qwt offers implementations for logarithmic and linear scales. Но, у меня неуспешно удалось поиграть с атрибутами. Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 16:48 Мне никак не понять, что такое reference... относительно неё можно построить симметричную шкалу, либо шкалу, включающую это значение.
Вы не хотите использовать 0 в минимуме, потому что будет выводиться часть лишнего colorMap? Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 16:54 Вы не хотите использовать 0 в минимуме, потому что будет выводиться часть лишнего colorMap? нет не хочу Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 16:56 Значит выход один: делать логарифмическую шкалу :D Шучу Base class for scale engines. A scale engine tries to find "reasonable" ranges and step sizes for scales. The layout of the scale can be varied with setAttribute(). Qwt offers implementations for logarithmic and linear scales. Но, у меня не успешно удалось поиграть с атрибутами. Я так и не понял что вы предлагайте? Использовать Код: QwtLinearScaleEngine::setAtribute Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 17:01 я предлагаю поиграть с атрибутом IncludeReference.
Я так понял, что если задать этот референс 0, то он будет включен в шкалу, а сам ColorMap смещен. забавно, что этот виджет даже при установке собственного шага не даёт желаемого результата. Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 17:06 А можете привести пример кода плз :)
Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 17:16 А можете привести пример кода плз :) К сожалению, я не разобрался, как пользоваться атрибутами. Мне удалось только инвертировать направление шкалы.Возможно, я ошибаюсь насчет атрибутов. Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 29, 2014, 17:20 пытался сделать так
Код
но, что не получилось или я что-тол тоже не понял а пример кода с инвертированием шкалы можете показать... Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 29, 2014, 17:35 пытался сделать так Я примерно то же делал. И 0 в параметр передавал - результата не было.Код
но, что не получилось или я что-тол тоже не понял а пример кода с инвертированием шкалы можете показать... Код сегодня уже показать не смогу, так как уже далеко от компьютера, но, было что-то такое: scale->setAttribute(QwtLinearScaleEngine::Inverted); Только задавать нужно до присвоения движка. Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 30, 2014, 11:01 Пытался и инвертировать и 0 передавать ничего не получилось
Не могу разобраться почему Код
Название: Re: QWT(QwtThermo) Отправлено: __Heaven__ от Июль 30, 2014, 12:48 Кажется, я наврал. У меня тоже не удается инвертировать. Видимо, вчера мне показалось, что я это сделал.
Название: Re: QWT(QwtThermo) Отправлено: demaker от Июль 30, 2014, 13:24 Т.е я так понимаю не реально сделать так - чтобы минимальное значение по шкале было не ноль ??? :-\
Неужели нет свойств компонентов, чтобы можно было модернизировать шкалу? |