crossplatform.ru

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

6 страниц V  « < 3 4 5 6 >  
Ответить в данную темуНачать новую тему
> qwt
AD
  опции профиля:
сообщение 29.9.2008, 16:54
Сообщение #41


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(kuler @ 29.9.2008, 17:50) *
как?

QRectF QPainter::boundingRect ( const QRectF & rectangle, int flags, const QString & text )
Почитай про нее в ассистенте!
Можно еще использовать функции QFontMetrics!

QRect boundingRect ( QChar ch ) const
QRect boundingRect ( const QString & text ) const
QRect boundingRect ( int x, int y, int width, int height, int flags, const QString & text, int tabStops = 0, int * tabArray = 0 ) const
QRect boundingRect ( const QRect & rect, int flags, const QString & text, int tabStops = 0, int * tabArray = 0 ) const

QRectF QPainter::boundingRect ( const QRectF & rectangle, int flags, const QString & text )
QRect QPainter::boundingRect ( const QRect & rectangle, int flags, const QString & text )
QRect QPainter::boundingRect ( int x, int y, int w, int h, int flags, const QString & text )
QRectF QPainter::boundingRect ( const QRectF & rectangle, const QString & text, const QTextOption & option = QTextOption() )

Сообщение отредактировал AD - 30.9.2008, 10:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 29.9.2008, 17:46
Сообщение #42


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


ну вообщето мне надо затем назначить этот рект както лэйблу, вот это неизвестно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 29.9.2008, 17:57
Сообщение #43


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(kuler @ 29.9.2008, 18:46) *
ну вообщето мне надо затем назначить этот рект както лэйблу, вот это неизвестно

Наверное, стоит заглянуть в документацию по Qwt! ;) Я лично не верю, что это нельзя сделать. У ректа можно взять отдельно значения ширины и высоты и подставить там, где следует!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 29.9.2008, 17:57
Сообщение #44


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


!

Сообщение отредактировал AD - 29.9.2008, 17:58
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 3.10.2008, 10:58
Сообщение #45


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


при создании зумера он инициализируется базовым ректом, если оси были 1000 на 1000, то и рект будет 1000 на 1000, при этом при возвращении к исходному состоянию шкалы будут установлены в 1000 на 1000. Но мне надо изменить этот базовый рект, по идее это делается методом setZoomBase(рект), но не получается. Посмотрел исходники, там фигня не очень понятная. Как изменить, кто знает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 16.10.2008, 16:35
Сообщение #46


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


как сделать чтоб подписи (лэйблы) к маркерам можно было выводить в какойто точке? а то они выводятся скажем все время сверху сбоку (setLabelAlignment)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 27.10.2008, 15:52
Сообщение #47


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


почему делаю setVisible(false) а плот все равно виден?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Laykon_*
сообщение 9.6.2011, 16:01
Сообщение #48





Гости








    


Цитата(kuler @ 3.10.2008, 10:58) *
при создании зумера он инициализируется базовым ректом, если оси были 1000 на 1000, то и рект будет 1000 на 1000, при этом при возвращении к исходному состоянию шкалы будут установлены в 1000 на 1000. Но мне надо изменить этот базовый рект, по идее это делается методом setZoomBase(рект), но не получается. Посмотрел исходники, там фигня не очень понятная. Как изменить, кто знает?


воспользуйся функцией setAxisScale. задает маштаб оси.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 10.6.2011, 7:02
Сообщение #49


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Гость_Laykon_* @ 9.6.2011, 19:01) *
воспользуйся функцией setAxisScale. задает маштаб оси.


Ничем он не воспользуется уже... ТРИ года прошло!!! проблема уже или решена, или найден другой способ.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Александр_*
сообщение 2.4.2012, 18:19
Сообщение #50





Гости








    


Если каму надо еще

точки графика переводим время в секунды

double time = sec + min * 60 + hour * 3600;


далее добавляем класс

class TimeScaleDraw: public QwtScaleDraw
{
public:
    TimeScaleDraw(const QTime &base):
        baseTime(base)
    {
    }
    virtual QwtText label(double v) const
    {
        QTime upTime = baseTime.addSecs((int)v);
        return upTime.toString();
    }
private:
    QTime baseTime;
};


и применяем

    setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw(QTime::fromString("00:00:00","hh,mm,ss")));  //устанавливаем отрисовку
    setAxisScale(QwtPlot::xBottom, 0.0 , 86400.0, 3600); // с 0 до 24 часов ( 60*60*24 = 86400  это сутки в секундах и с шагом в 1 час ( 60*60 = 3600 )
    setAxisLabelRotation(QwtPlot::xBottom, -50.0); // наклоняем текст
    setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);



ну и кто использует Zoomer для коректного отображения текста на указателе мышки

    virtual QwtText trackerTextF(const QPointF &pos) const
    {
        QColor bg(Qt::white);

        QwtText text = QwtPlotZoomer::trackerTextF(pos);

        QTime times = QTime::fromString("00.00.00", "hh.mm.ss");

        times = times.addSecs((int)text.text().mid(0,text.text().indexOf('.')).toInt());

        text.setText(times.toString("hh:mm:ss")+text.text().mid(text.text().indexOf(','),text.text().length()-text.text().indexOf(',')));

        text.setBackgroundBrush( QBrush( bg ));
        
        return text;
    }


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

6 страниц V  « < 3 4 5 6 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


9 чел. читают эту тему (гостей: 9, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.12.2024, 22:27