Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: StatuS74 от Июля 11, 2011, 12:24



Название: рисование графиков
Отправлено: StatuS74 от Июля 11, 2011, 12:24
Вопрос в следующем. нужно нарисовать графики. но условие что бы их потом можно было сохранить типо в программе кнопка сохранить график и он сохраняет в формуете JPG. не знаю с чего начать ибо с графикой ни когда не работал.


Название: Re: рисование графиков
Отправлено: m_ax от Июля 11, 2011, 13:05
Есть куча уже готовых решений, например lightplot2d
http://www.prog.org.ru/topic_10208_90.html (http://www.prog.org.ru/topic_10208_90.html)


Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 11, 2011, 13:13
меня интересует на чем создавать например на графиквьювер или ещё на чем


Название: Re: рисование графиков
Отправлено: m_ax от Июля 11, 2011, 13:18
меня интересует на чем создавать например на графиквьювер или ещё на чем
Наверное, разумнее использовать QGraphicsView/Scene.   


Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 12, 2011, 05:57
не совсем понял как связать graphicsView c QPainter что бы начать рисовать. Извиняюсь мб вопрос тупой.просто я с графикой ни когда не работал.а тут вот пришлось =)


Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 12, 2011, 11:17
не поверю что ни кто не знает...


Название: Re: рисование графиков
Отправлено: m_ax от Июля 12, 2011, 12:06
Вообще, всё зависит от мотива.
1) Если цель описанной задачи (строить, сохранять, отображать графики) познать всё это на своей шкуре, то придётся также самому учиться искать ответы на подобные вопросы
Цитировать
не совсем понял как связать graphicsView c QPainter что бы начать рисовать. Извиняюсь мб вопрос тупой.просто я с графикой ни когда не работал.а тут вот пришлось =)

2) Если цель просто сделать и забыть, то лучше использывать готовые решения. Сэкономите кучу времени и нервов)



Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 13, 2011, 05:59
начал изучать графику и столкнулся с такой проблемой код на мой взгляд правильный а ни чего не рисует

Код:
 QGraphicsView *graphicsView = new QGraphicsView(this);
 QGraphicsScene * scene = new QGraphicsScene;
 graphicsView->setScene(scene);
scene->addRect(0,0,100,100,QPen(Qt::red,3,Qt::DashDotDotLine));



Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 13, 2011, 12:36
исправил на вот этот но все равно не отображает =((
Код:
  QGraphicsView *graphicsView = new QGraphicsView(this);
     QGraphicsScene * scene = new QGraphicsScene;
     QBrush brash = QBrush(Qt::lightGray,Qt::SolidPattern);
     QPen pen = QPen(Qt::black, 1, Qt::SolidLine, Qt::FlatCap, Qt::RoundJoin);
     graphicsView->setScene(scene);
     scene->addRect(0,0,100,100,pen,brash);


Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 15, 2011, 08:29
появился суть вопроса в следующем...
scene->addText(QString::number(ti));
ti - это температура по оси Х
 но я не пойму как тут добавить координаты расположения текста и цвет текста


Название: Re: рисование графиков
Отправлено: GreatSnake от Июля 15, 2011, 10:52
появился суть вопроса в следующем...
scene->addText(QString::number(ti));
ti - это температура по оси Х
 но я не пойму как тут добавить координаты расположения текста и цвет текста
Код
C++ (Qt)
QGraphicsTextItem * QGraphicsScene::addText ( const QString & text, const QFont & font = QFont() )
void QGraphicsItem::setPos ( const QPointF & pos )
void QGraphicsTextItem::setDefaultTextColor ( const QColor & col )


Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 15, 2011, 11:27
Код:
scene->addText(QString::number(ti),serifFont);
          QGraphicsItem::setPos (100,100);
          QGraphicsTextItem::setDefaultTextColor (Qt::gray );

не хочет компилировать


Название: Re: рисование графиков
Отправлено: Пантер от Июля 15, 2011, 11:31
Не тупи.
Код
C++ (Qt)
scene->addText(QString::number(ti),serifFont);
scene->setPos (100,100);
scene->setDefaultTextColor (Qt::gray );
 


Название: Re: рисование графиков
Отправлено: StatuS74 от Июля 15, 2011, 11:35
это не верно там нет таких функций =)


Название: Re: рисование графиков
Отправлено: Пантер от Июля 15, 2011, 11:36
Блин, ну поищи в ассистенте как получить от сцены QGraphicsItem и для него это сделай.


Название: Re: рисование графиков
Отправлено: GreatSnake от Июля 15, 2011, 11:36
Не тупи.
Код
C++ (Qt)
scene->addText(QString::number(ti),serifFont);
scene->setPos (100,100);
scene->setDefaultTextColor (Qt::gray );
 

Ну вы оба молодцы)
Код
C++ (Qt)
QGraphicsTextItem* it = scene->addText(QString::number(ti),serifFont);
ti->setPos (100,100);
ti->setDefaultTextColor (Qt::gray );
 


Название: Re: рисование графиков
Отправлено: GreatSnake от Июля 15, 2011, 11:39
это не верно там нет таких функций =)
Не, ну так нельзя.
Тебе дали подсказку в виде описаний методов, которые нужно использовать.
Нельзя же так тупо без включения мозга делать copy-paste  ???


Название: Re: рисование графиков
Отправлено: StatuS74 от Августа 11, 2011, 07:47
график нарисовал.а как теперь его сохранить. делаю след
Код:
      QGraphicsView view_save(scene);
       QPixmap pixmap = QPixmap::grabWidget(&view_save);
       QString puti_save;
       puti_save.append(serial1).append(".png");
       pixmap.save(puti_save);

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