EnergySpectrumAnalyer/src/MeasureAnalysisDataTableView.cpp

40 lines
1.3 KiB
C++

#include "MeasureAnalysisDataTableView.h"
#include "VirtualTable/CsvDataSource.h"
#include "VirtualTable/VirtualTableModel.h"
#include "VirtualTable/VirtualTableView.h"
#include <QHBoxLayout>
MeasureAnalysisDataTableView::MeasureAnalysisDataTableView(QWidget* parent)
: MeasureAnalysisView { parent }
, _preload_policy(PreloadPolicy::Balanced)
, _block_size(1000)
, _buffer_size(50)
{
this->setAnalyzeViewType(ViewType::DataTable);
QHBoxLayout* layout = new QHBoxLayout(this);
// 创建表格视图
_tableView = new VirtualTableView(this);
_tableView->setFixedRowHeight(25); // 设置固定行高
_tableView->setShowGrid(true);
_tableView->setAlternatingRowColors(false);
layout->addWidget(_tableView);
}
void MeasureAnalysisDataTableView::SetAnalyzeDataFilename(const QMap<QString, QString> &data_files_set)
{
if (data_files_set.isEmpty()) {
return;
}
auto csv_ddata_source = std::make_shared<CsvDataSource>(data_files_set.first());
if (!csv_ddata_source->isValid()) {
return;
}
VirtualTableModel* table_model = new VirtualTableModel;
table_model->setDataSource(csv_ddata_source);
table_model->setPreloadPolicy(_preload_policy);
table_model->setBlockSize(_block_size);
_tableView->setVirtualModel(table_model);
_tableView->setBufferSize(_buffer_size);
}