Название: 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 Т.е я так понимаю не реально сделать так - чтобы минимальное значение по шкале было не ноль ??? :-\
Неужели нет свойств компонентов, чтобы можно было модернизировать шкалу? |