Avertissement "unused variable"
Bonjour , je travaille sur QT pour cela j'ai cree 2 classes , une pour la creation de la fenetre et l'autre en C++ qui gere l'interaction :
.h :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#ifndef CODE_H
#define CODE_H
#include "point.h"
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <fstream>
#include <cstdlib>
#include <iomanip>
#include <QtDataVisualization>
#include <Q3DScatter>
using namespace QtDataVisualization ;
class Code : public QObject {
public :
explicit Code(Q3DScatter *scatter);
public :
std::vector<point> readingData(std::string inputFileName);
void addData();
private:
Q3DScatter *m_graph ;
};
#endif // CODE_H |
.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #include "code.h"
#include "gui.h"
#include "point.h"
#include <QtDataVisualization>
#include <QVector3D>
#include <Q3DScatter>
using namespace QtDataVisualization ;
Code::Code(Q3DScatter *scatter) : m_graph(scatter){
}
std::vector<point> Code::readingData(std::string inputFileName ) {
std::vector<point> inputData;
std::string line, token;
point newPoint;
// std::string inputFileName = entry1->text().toStdString();
std::ifstream file;
file.open(inputFileName.c_str(), std::ifstream::in);
if (file.is_open())
{
while (getline(file, line))
{
std::istringstream ss(line);
getline(ss, token, ',');
newPoint.x = stod(token);
getline(ss, token, ',');
newPoint.y = stod(token);
getline(ss, token, ',');
newPoint.z = stod(token);
inputData.push_back(newPoint);
//std::cout << inputData.at(2).x << endl;
}
}
else
std::cout << "Unable to open file";
file.close();
return inputData ;
}
void Code::addData(){
m_graph->axisX()->setTitle("X");
m_graph->axisY()->setTitle("Y");
m_graph->axisZ()->setTitle("Z");
//QScatterDataProxy *proxy = new QScatterDataProxy;
QtDataVisualization::QScatter3DSeries *series = new QtDataVisualization::QScatter3DSeries(m_graph);
std::vector<point> inputData = Code::readingData("test.txt");
QtDataVisualization::QScatterDataArray data;
for (int i=0; i<inputData.size();i++)
{
data << QVector3D(inputData.at(i).x , inputData.at(i).y , inputData.at(i).z);
data.push_back(QtDataVisualization::QScatterDataItem(QVector3D(inputData.at(i).x,inputData.at(i).y,inputData.at(i).z)));
};
series->dataProxy()->addItems(data);
m_graph->addSeries(series);
} |
et pour utiliser le code en C++ dans la classe fenetre je fais comme ceci :
Code:
Code *modifier = new Code(graph);
avec graph est un widgets de la classe fenetre , mais a la compilation pas des erreurs mais la liaison desires entre la classe code et classe fenetre se fait pas et le graphe s'affiche vide , et j'ai ces 2 messages :
unused variable 'modifier '
in member function 'void Code::addData()'
le probleme vient de la ligne :
Code:
Code *modifier = new Code(graph);
cependant j'ai cherche sur internet et je trouve que le syntaxe de relier 2 classe ressemble a ce que j'ai ecrit