crossplatform.ru

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

> кто-то работал с qcustomplot ?
_Vitaliy_
  опции профиля:
сообщение 27.8.2014, 19:05
Сообщение #1


Студент
*

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

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




Репутация:   0  


Если да, то откликнитесь, есть несколько вопросов...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
_Vitaliy_
  опции профиля:
сообщение 30.8.2014, 8:23
Сообщение #2


Студент
*

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

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




Репутация:   0  


Доброго времени суток.
Посмотрел Ваши решения, немного недопонял насчет использования
on_btn_green_check_clicked()
кнопок вроде как нет.
На всякий случай прикладываю свою реализацию через
 connect(ui->customPlot, SIGNAL(plottableClick(QCPAbstractPlottable*,QMouseEvent*)),
            this, SLOT(graphClicked(QCPAbstractPlottable*)));

З.ы. хотел 7Z архивом скинуть но что-то система не пропускает, тогда портянка mainwindow.cpp:

Раскрывающийся текст
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    graphics();

    connect(ui->customPlot, SIGNAL(plottableClick(QCPAbstractPlottable*,QMouseEvent*)),
            this, SLOT(graphClicked(QCPAbstractPlottable*)));

}


void MainWindow::graphics()
{
    ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
    ui->customPlot->axisRect()->setRangeDrag(Qt::Vertical);   // peremeshenie po OY
    ui->customPlot->axisRect()->setRangeZoom(Qt::Vertical);   // mashtab po OX

    ui->customPlot->addGraph(ui->customPlot->xAxis, ui->customPlot->yAxis);
    ui->customPlot->addGraph(ui->customPlot->xAxis, ui->customPlot->yAxis);
    ui->customPlot->addGraph(ui->customPlot->xAxis, ui->customPlot->yAxis);

    ui->customPlot->graph(0)->setLineStyle(QCPGraph::lsLine);
    ui->customPlot->graph(1)->setLineStyle(QCPGraph::lsLine);
    ui->customPlot->graph(2)->setLineStyle(QCPGraph::lsLine);

    ui->customPlot->graph(0)->setPen(QPen(Qt::red, 3));
    ui->customPlot->graph(1)->setPen(QPen(Qt::yellow, 3));
    ui->customPlot->graph(2)->setPen(QPen(Qt::green, 3));

    ui->customPlot->xAxis->setVisible(true);
    ui->customPlot->yAxis->setVisible(false);
    ui->customPlot->xAxis2->setVisible(false);
    ui->customPlot->yAxis2->setVisible(false);

    ui->customPlot->xAxis->setBasePen(QPen(Qt::black));
    ui->customPlot->yAxis->setBasePen(QPen(Qt::black));
    ui->customPlot->xAxis2->setBasePen(QPen(Qt::black));
    ui->customPlot->yAxis2->setBasePen(QPen(Qt::black));

    QVector<double> x(250), y1(250), y2(250), y3(250);
    for (int i=0; i<250; ++i)
    {
        x[i] = i;
        y1[i] = sin(x[i]/10);
        y2[i] = sin(x[i]/7) + 1.0;
        y3[i] = cos(x[i]/5) + 2.0;
    }

//    connect(ui->customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), ui->customPlot->xAxis2, SLOT(setRange(QCPRange)));
//    connect(ui->customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), ui->customPlot->yAxis2, SLOT(setRange(QCPRange)));

    ui->customPlot->graph(0)->setData(x, y1);
    ui->customPlot->graph(1)->setData(x, y2);
    ui->customPlot->graph(2)->setData(x, y3);

    ui->customPlot->graph(0)->setName("graph 0");
    ui->customPlot->graph(1)->setName("graph 1");
    ui->customPlot->graph(2)->setName("graph 2");

    ui->customPlot->rescaleAxes();

    ui->customPlot->replot();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::graphClicked(QCPAbstractPlottable *plottable)
{
  ui->statusBar->showMessage(QString("Clicked on graph '%1'.").arg(plottable->name()), 1000);

  qDebug() << plottable->name();


  if (plottable->name() == "graph 0")
  {
      ui->customPlot->yAxis->setVisible(true);

      ui->customPlot->graph(0)->setKeyAxis(ui->customPlot->xAxis);
      ui->customPlot->graph(0)->setValueAxis(ui->customPlot->yAxis);

      ui->customPlot->graph(1)->setKeyAxis(ui->customPlot->xAxis2);
      ui->customPlot->graph(1)->setValueAxis(ui->customPlot->yAxis2);
      ui->customPlot->graph(2)->setKeyAxis(ui->customPlot->xAxis2);
      ui->customPlot->graph(2)->setValueAxis(ui->customPlot->yAxis2);


      ui->customPlot->yAxis->setAutoTicks(false);
      ui->customPlot->yAxis->setAutoTickLabels(false);
      ui->customPlot->yAxis->setAutoSubTicks(false);
      ui->customPlot->yAxis->setTickVector(QVector<double>()
                                           << 1.0 << 2.0 << 3.0);
      ui->customPlot->yAxis->setTickVectorLabels(QVector<QString>()
                                                 << "1,0" << "2,0" << "3,0");

      ui->customPlot->rescaleAxes();
      ui->customPlot->replot();
  }

  if (plottable->name() == "graph 1")
  {
      ui->customPlot->graph(1)->setKeyAxis(ui->customPlot->xAxis);
      ui->customPlot->graph(1)->setValueAxis(ui->customPlot->yAxis);

      ui->customPlot->graph(0)->setKeyAxis(ui->customPlot->xAxis2);
      ui->customPlot->graph(0)->setValueAxis(ui->customPlot->yAxis2);
      ui->customPlot->graph(2)->setKeyAxis(ui->customPlot->xAxis2);
      ui->customPlot->graph(2)->setValueAxis(ui->customPlot->yAxis2);

  }


}


зипом получилось...

Сообщение отредактировал _Vitaliy_ - 30.8.2014, 8:37
Прикрепленные файлы
Прикрепленный файл  na_forum.zip ( 202,71 килобайт ) Кол-во скачиваний: 253
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- _Vitaliy_   кто-то работал с qcustomplot ?   27.8.2014, 19:05
- - Steklova Olga   Да, приходилось немного...   28.8.2014, 9:23
|- - _Vitaliy_   Цитата(Steklova Olga @ 28.8.2014, 8:23) Д...   28.8.2014, 11:13
- - Steklova Olga   При перемещении произвольного графика по оси OY зн...   28.8.2014, 20:08
- - _Vitaliy_   Начинаем с простого... Необходимо реализовать: 1. ...   28.8.2014, 20:31
- - Steklova Olga   А как ты рисуешь несколько графиков на одном custo...   29.8.2014, 11:04
- - _Vitaliy_   Рисую стандартно: ui->customPlot->addGrap...   29.8.2014, 11:45
- - Steklova Olga   Цитата(_Vitaliy_ @ 28.8.2014, 20:31) Цита...   29.8.2014, 12:16
- - Steklova Olga   Цитата(_Vitaliy_ @ 29.8.2014, 11:45) Полу...   29.8.2014, 13:15
- - _Vitaliy_   ЦитатаА прокручивается сама область customPlot...   29.8.2014, 13:39
- - Steklova Olga   ты не ответил на сообщение #8   29.8.2014, 14:06
- - Steklova Olga   graphics()void MainWindow::graphics(...   29.8.2014, 17:34
- - Steklova Olga   а для оцифровки on_btn_green_check_clicked()void M...   29.8.2014, 18:05
- - _Vitaliy_   Отвечаю на 8 пост. ЦитатаЕсли ты переместишь синий...   29.8.2014, 20:14
- - _Vitaliy_   Доброго времени суток. Посмотрел Ваши решения, нем...   30.8.2014, 8:23
- - Steklova Olga   Насчет моего кода... Кинь на свое окно рядом с ком...   1.9.2014, 11:12
- - _Vitaliy_   пока не "победил" адекватное масштабиров...   1.9.2014, 13:08
- - Steklova Olga   я смотрела "твой" проект - искуроченный ...   1.9.2014, 14:15
- - _Vitaliy_   спасибо, честно говоря 17 сообщение я написал не в...   1.9.2014, 14:52
- - skyer_   Приветствую, нужен совет как нарисовать горизонтал...   14.10.2014, 21:27
- - Steklova Olga   Цитата(skyer_ @ 14.10.2014, 21:27) Привет...   30.10.2014, 20:13
- - skyer_   Цитата(Steklova Olga @ 30.10.2014, 20:13)...   1.11.2014, 23:59


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 24.11.2024, 23:06