crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QWT, метки на шкале прыгают
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ctin Дата 5.2.2012, 15:05
  чтоб не прыгало добавляем одну строку:

( указатель на объект класса QwtPlot)->setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);
quarz Дата 9.12.2009, 20:26
  Нашел наиболее красивый и рабочий способ.
Ставим шкалу справа axisEnble(QwtPlot::yRight), устанавливаем для нее свой ScaleDraw, в котором переопределяем методы
virtual void drawTick(QPainter *p, double val, int len) const{}
virtual void drawBackbone(QPainter *p) const{}
virtual void drawLabel(QPainter *p, double val) const{}

чтобы сама шкала не была видна, и управляем шириной этой шкалы через setMinimumExtent.


А вот и видео )
На нем видно, как при появлении метки 100, место справа увеличивается, чтобы дать ей залезть на область с осью и не сжимать сам график
quarz Дата 8.12.2009, 23:35
  Кажется, до меня дошла суть дела =)
Когда метка появляется справа, часть ее находится ЗА пределами виджета, поэтому она искусственно вместе со шкалой и сдвигается. У левых меток такой проблемы нет, потому что левая вертикальная шкала раздвигает layout виджета.

Значит, надо как-то раздвинуть layout справа. Доступ к нему есть plot->layout(), но как сделать, чтобы справа от canvas еще было какое-то расстояние?
quarz Дата 8.12.2009, 3:28
  Я как обычно, про графики )
Проблема: когда метка появляется справа, она появляется полностью, при этом отодвигая график и ось. Надо чтоб метка плавно выезжала.
Я пока нашел 2 [кривых] решения: первое - выравнивать метки по левому краю. Второе - отодвинуть шкалу от правого края QwtScaleWidget::setMinBorderDist.
Но ни то, ни другое мне не кажется удобным. Есть идеи?

(В аттаче видео с сабжем)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.9.2020, 3:17