Как стать автором
Поиск
Написать публикацию
Обновить

Построение графиков простейших функций в Qt

Эта статья о том, как можно научиться строить любые графики в среде QT 4.8.2 без всяких QWT- ов.
Задача: Построить график (прямую) по 4 точкам.
Как видите, график будет простейший.
Начнем.
1. Создадим проект QT 4.8.2 с ui файлом(GUI приложение QT).
2. Откроем редактор графического интерфейса.
2.1. Находим в toolbox-е элемент GraphicsView, и перетаскиваем его на форму.
2.2. Тоже самое с кнопкой PushButton.
2.3. А еще для ввода x и y нам потребуется четыре SpinBox.
Ну вот, основные приготовления закончены.
У вас должно получится примерно следующее:


Дальше начинается кодинг.
Нажимаем правой кнопкой мыши на PushButton и выбираем пункт перейти к слоту.
Вы увидите:

Дальше мы создадим сцену.

QGraphicsScene *scene = new QGraphicsScene(ui->graphicsView);
//Это как раз создана сцена. Сцена - это класс для работы с 2D графикой.
//Теперь, раз это график, то построим координатные оси X и Y.
QPen pen(Qt::green);//Просто выбираем цвет для карандашика
scene->addLine(0,90,180,90,pen);//x
scene->addLine(90,0,90,180,pen);//y


Итак, на этой стадии можно добавить в конец такую строку:
ui->graphicsView->setScene(scene);

и откомпилировать программу.
Должно получиться примерно следующее:

Это элемент нашего графика graphicsview.

По логике, надо дальше принять все 4 значения из наших Spinbox-ов.

Это мы и выполним:
a =ui->spinBox  ->value();
b =ui->spinBox_2->value();
c =ui->spinBox_3->value();
d =ui->spinBox_4->value();
//Забираем значения переменных из SpinBox-ов
QPen pen2(Qt::red);//Карандашик для графика
scene->addLine(a*15+90,90-b*15,c*15+90,90-d*15,pen2);
//(90;90) – точка пересечения осей. Значит, мы должны к x-ам прибавить x //центра, а из y вычесть значение Y центра. 15 – это количество пикселов в //0,5 мм. Это все требуется для наиболее точного расположения графика. 

ui->graphicsView->setScene(scene);//Добавляем в наш GraphicsView нарисованную сцену.

Результат:

Вот мы и научились строить простейшие графики в Qt Creator.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.