comac_desk_app/PostProcessing/DelimitedTextReader.h

78 lines
2.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef PST_DELIMITEDTEXTREADER_H
#define PST_DELIMITEDTEXTREADER_H
#include <QObject>
#include <QString>
#include <vtkSmartPointer.h>
#include <vector>
#include <string>
class vtkTable;
class vtkDelimitedTextReader;
namespace pst
{
/**
* @class DelimitedTextReader
* @brief Read txt text.
*/
class DelimitedTextReader : public QObject
{
Q_OBJECT
public:
explicit DelimitedTextReader(QObject* parent = nullptr);
~DelimitedTextReader();
public:
void SetFilePath(const QString& filePath);
/**
* Set/get whether to treat the first line of the file as headers.
* The default is false (no headers).
*/
void SetHaveHeaders(bool haveHeaders);
/**
* Specify the character(s) that will be used to separate fields. For
* example, set this to "," for a comma-separated value file. Set
* it to ".:;" for a file where columns can be separated by a
* period, colon or semicolon. The order of the characters in the
* string does not matter. Defaults to a comma.
*/
void SetFieldDelimiterCharacters(const QString& flag);
//自动为表格数据添加表头
//包括第一列为行号下标,第一行为标签
void AddTableHeaderAuto(bool addHeader);
bool Update();
vtkTable* GetOutput();
std::vector<std::string> GetXTitles();
std::vector<std::string> GetYTitles();
private:
void AddHeaderFromOriginalTable();
//产生可用于显示成xy轴的字符串表头
///@生成可用于作为x和y轴的表头
///即THETA和PHI哪个可以作为x轴哪个可以作为y轴
void GenerateXYTitle();
private:
QString m_filePath;
vtkDelimitedTextReader* m_reader;
bool m_shouldAddHeader;
vtkTable* m_table;
std::vector<std::string> m_XTitles;
std::vector<std::string> m_YTitles;
};
} //namespace PST
#endif // PST_DELIMITEDTEXTREADER_H