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);

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