Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Chart cannot read datas from txt

Chart cannot read datas from txt

Scheduled Pinned Locked Moved Unsolved General and Desktop
9 Posts 2 Posters 812 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    deleted286
    wrote on last edited by
    #1

    It will create a chart, but there is no data on it. Datas on my txt cannot seen on chart. How can I handle with it? Do I use another timer or am i wrong any other part of it?

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QFile>
    #include <QtCharts/QLineSeries>
    #include <QTimer>
    #include <QTextStream>
    #include <QtCharts>
    #include <QChart>
    #include <QString>
    
    
    
    QT_CHARTS_USE_NAMESPACE
    
    using namespace QtCharts;
    
    
    
    QLineSeries *series = new QLineSeries();
    QTimer *timer = new QTimer();
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
      connect(timer, SIGNAL(timeout()), SLOT(Timer_Slot()));
    
        initChartView();
    
    }
    
    void MainWindow::Timer_Slot(){
        QString line = allLines[curIndex];
        ui->plainTextEdit->setPlainText(line);
        if(curIndex < allLines.size() -1 ) {
            curIndex++;
        }
    }
    
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    
    void MainWindow::on_pushButton_clicked()
    {
    
        QFile file("C:/Users/ilknu/Documents/SnDeneme/deneme.txt");
    
        if (file.open(QIODevice::ReadOnly)) {
              QTextStream in (&file);
              while (!in.atEnd()) {
              QString line = in.readLine();
              allLines.append(line);
    
          QStringList list = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
                for(const QString &entry : list) {
                double num = entry.toDouble();
                qDebug()<<num;
                     series->append(num, num);
                    }
    
    
    
                }
                }
        file.close();
        curIndex=0;
        timer->start(300);
    }
    
    void MainWindow::initChartView(){
    
    
    
       QChart *chart = new QChart();
          chart->addSeries(series);
          chart->legend()->hide();
          chart->setTitle("deneme");
    
          QValueAxis *axisX = new QValueAxis();
          axisX->setTitleText("Points");
          axisX->setLabelFormat("yyyy");
          axisX->setTickCount(series->count());
          chart->addAxis(axisX, Qt::AlignBottom);
          series->attachAxis(axisX);
    
          QLogValueAxis *axisY = new QLogValueAxis();
          axisY->setTitleText("Values");
          axisY->setLabelFormat("%i");
          axisY->setBase(8);
          chart->addAxis(axisY, Qt::AlignLeft);
          series->attachAxis(axisY);
    
          QChartView *chartView = new QChartView(chart);
          chartView->setRenderHint(QPainter::Antialiasing);
    
          connect(series, &QLineSeries::hovered, this, &MainWindow::on_pushButton_clicked);
          this->setCentralWidget(chartView);
    
    }
    
    jsulmJ 1 Reply Last reply
    0
    • D deleted286

      It will create a chart, but there is no data on it. Datas on my txt cannot seen on chart. How can I handle with it? Do I use another timer or am i wrong any other part of it?

      #include "mainwindow.h"
      #include "ui_mainwindow.h"
      #include <QFile>
      #include <QtCharts/QLineSeries>
      #include <QTimer>
      #include <QTextStream>
      #include <QtCharts>
      #include <QChart>
      #include <QString>
      
      
      
      QT_CHARTS_USE_NAMESPACE
      
      using namespace QtCharts;
      
      
      
      QLineSeries *series = new QLineSeries();
      QTimer *timer = new QTimer();
      
      MainWindow::MainWindow(QWidget *parent)
          : QMainWindow(parent)
          , ui(new Ui::MainWindow)
      {
          ui->setupUi(this);
        connect(timer, SIGNAL(timeout()), SLOT(Timer_Slot()));
      
          initChartView();
      
      }
      
      void MainWindow::Timer_Slot(){
          QString line = allLines[curIndex];
          ui->plainTextEdit->setPlainText(line);
          if(curIndex < allLines.size() -1 ) {
              curIndex++;
          }
      }
      
      
      MainWindow::~MainWindow()
      {
          delete ui;
      }
      
      
      void MainWindow::on_pushButton_clicked()
      {
      
          QFile file("C:/Users/ilknu/Documents/SnDeneme/deneme.txt");
      
          if (file.open(QIODevice::ReadOnly)) {
                QTextStream in (&file);
                while (!in.atEnd()) {
                QString line = in.readLine();
                allLines.append(line);
      
            QStringList list = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
                  for(const QString &entry : list) {
                  double num = entry.toDouble();
                  qDebug()<<num;
                       series->append(num, num);
                      }
      
      
      
                  }
                  }
          file.close();
          curIndex=0;
          timer->start(300);
      }
      
      void MainWindow::initChartView(){
      
      
      
         QChart *chart = new QChart();
            chart->addSeries(series);
            chart->legend()->hide();
            chart->setTitle("deneme");
      
            QValueAxis *axisX = new QValueAxis();
            axisX->setTitleText("Points");
            axisX->setLabelFormat("yyyy");
            axisX->setTickCount(series->count());
            chart->addAxis(axisX, Qt::AlignBottom);
            series->attachAxis(axisX);
      
            QLogValueAxis *axisY = new QLogValueAxis();
            axisY->setTitleText("Values");
            axisY->setLabelFormat("%i");
            axisY->setBase(8);
            chart->addAxis(axisY, Qt::AlignLeft);
            series->attachAxis(axisY);
      
            QChartView *chartView = new QChartView(chart);
            chartView->setRenderHint(QPainter::Antialiasing);
      
            connect(series, &QLineSeries::hovered, this, &MainWindow::on_pushButton_clicked);
            this->setCentralWidget(chartView);
      
      }
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @suslucoder said in Chart cannot read datas from txt:

      qDebug()<<num;
      series->append(num, num);
      }

      And where in your code do you add series to the chart?!

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      D 1 Reply Last reply
      0
      • jsulmJ jsulm

        @suslucoder said in Chart cannot read datas from txt:

        qDebug()<<num;
        series->append(num, num);
        }

        And where in your code do you add series to the chart?!

        D Offline
        D Offline
        deleted286
        wrote on last edited by
        #3

        @jsulm chart->addSeries(series);

        is it wrong?

        jsulmJ 1 Reply Last reply
        0
        • D deleted286

          @jsulm chart->addSeries(series);

          is it wrong?

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @suslucoder said in Chart cannot read datas from txt:

          chart->addSeries(series);

          I think you need to do this after populating series with your data from the file.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          D 1 Reply Last reply
          1
          • jsulmJ jsulm

            @suslucoder said in Chart cannot read datas from txt:

            chart->addSeries(series);

            I think you need to do this after populating series with your data from the file.

            D Offline
            D Offline
            deleted286
            wrote on last edited by
            #5

            @jsulm for doing it chart should be declared globally. When i declared it global, it causes a crash . any options?

            jsulmJ 1 Reply Last reply
            0
            • D deleted286

              @jsulm for doing it chart should be declared globally. When i declared it global, it causes a crash . any options?

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @suslucoder said in Chart cannot read datas from txt:

              chart should be declared globally

              Why do you think so?
              You just need to declare QChart *chart as member variable instead of a local variable in initChartView()...

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              D 1 Reply Last reply
              0
              • jsulmJ jsulm

                @suslucoder said in Chart cannot read datas from txt:

                chart should be declared globally

                Why do you think so?
                You just need to declare QChart *chart as member variable instead of a local variable in initChartView()...

                D Offline
                D Offline
                deleted286
                wrote on last edited by
                #7

                @jsulm you mean in header file, right?

                jsulmJ 1 Reply Last reply
                0
                • D deleted286

                  @jsulm you mean in header file, right?

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @suslucoder Yes, inside your class declaration as private member variable...

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  D 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @suslucoder Yes, inside your class declaration as private member variable...

                    D Offline
                    D Offline
                    deleted286
                    wrote on last edited by
                    #9

                    @jsulm I've tried. It says Series not in the chart. Please addSeries to chart first.

                    1 Reply Last reply
                    0

                    • Login

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • Users
                    • Groups
                    • Search
                    • Get Qt Extensions
                    • Unsolved