|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// <20>ر<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>AI<41><49><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>ĶԻ<C4B6><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>
|
|
|
|
|
|
// <20>ϵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жԱ<D0B6><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD>AIֱ<49>ӱ<EFBFBD><D3B1><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸĶ<C4B8><C4B6><EFBFBD>
|
|
|
|
|
|
// Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>ݲ<EFBFBD><DDB2><EFBFBD>iFramework<72><6B><EFBFBD>ܽ<EFBFBD><DCBD>м<EFBFBD><D0BC>ɡ<EFBFBD>
|
|
|
|
|
|
// <20>漰<EFBFBD><E6BCB0><EFBFBD>⼰<EFBFBD>ļ<EFBFBD>:iLayerColorBand.h/cpp
|
|
|
|
|
|
// iLayerTableModel.h/cpp
|
|
|
|
|
|
// iLayerTableView.h/cpp
|
|
|
|
|
|
// iLayerWx.h/cpp
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>2026-01-08
|
|
|
|
|
|
// <20><><EFBFBD>ߣ<EFBFBD>AI<41><49>ģ<EFBFBD><C4A3>
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>wangzg
|
|
|
|
|
|
// <20><EFBFBD><F3B8BDA3><EFBFBD><EFBFBD>彻<EFBFBD><E5BDBB><EFBFBD><EFBFBD> iLayerWx.h
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#include <QColor>
|
|
|
|
|
|
#include <QAbstractTableModel>
|
|
|
|
|
|
|
|
|
|
|
|
#include "mGuiAnal_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
struct LayerData
|
|
|
|
|
|
{
|
|
|
|
|
|
QString layerName;
|
|
|
|
|
|
double thickness; // unit: meter
|
|
|
|
|
|
double ratio; // percentage
|
|
|
|
|
|
QString remark;
|
|
|
|
|
|
QColor color;
|
|
|
|
|
|
|
|
|
|
|
|
LayerData() : thickness(10.0), ratio(0.0)
|
|
|
|
|
|
{}
|
|
|
|
|
|
LayerData(const QString& name, double thick, const QColor& col)
|
|
|
|
|
|
: layerName(name), thickness(thick), ratio(0.0), color(col)
|
|
|
|
|
|
{}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class M_GUI_ANAL_EXPORT iLayerTableModel : public QAbstractTableModel
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
iLayerTableModel(QObject *parent = 0);
|
|
|
|
|
|
~iLayerTableModel();
|
|
|
|
|
|
|
|
|
|
|
|
// Basic override functions
|
|
|
|
|
|
int rowCount(const QModelIndex &parent = QModelIndex()) const ;
|
|
|
|
|
|
int columnCount(const QModelIndex &parent = QModelIndex()) const ;
|
|
|
|
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const ;
|
|
|
|
|
|
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
|
|
|
|
|
|
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
|
|
|
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const;
|
|
|
|
|
|
|
|
|
|
|
|
// Custom functions
|
|
|
|
|
|
void addLayer(const QString& defaultName = "", double thickness = 10.0);
|
|
|
|
|
|
void insertLayer(int row, const QString& defaultName = "", double thickness = 10.0);
|
|
|
|
|
|
void removeLayer(int row);
|
|
|
|
|
|
void setRowCount(int count);
|
|
|
|
|
|
|
|
|
|
|
|
// Update ratios for all rows
|
|
|
|
|
|
void updateRatios();
|
|
|
|
|
|
|
|
|
|
|
|
// Get total thickness
|
|
|
|
|
|
double getTotalThickness() const;
|
|
|
|
|
|
|
|
|
|
|
|
// Get/Set layer data
|
|
|
|
|
|
QList<LayerData> getLayerData() const;
|
|
|
|
|
|
void setLayerData(const QList<LayerData>& data);
|
|
|
|
|
|
|
|
|
|
|
|
// Get/Set color for specific layer
|
|
|
|
|
|
QColor getLayerColor(int row) const;
|
|
|
|
|
|
void setLayerColor(int row, const QColor& color);
|
|
|
|
|
|
|
|
|
|
|
|
// Get default color
|
|
|
|
|
|
QColor getDefaultColor(int index) const;
|
|
|
|
|
|
|
|
|
|
|
|
static QColor defaultColorOf(int index);
|
|
|
|
|
|
|
|
|
|
|
|
// Modify layer thickness and update ratio
|
|
|
|
|
|
bool setOneRowThickness(int row, double thickness, double newRatio);
|
|
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źţ<C5BA><C5A3><EFBFBD><EFBFBD><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>仯
|
|
|
|
|
|
void layerDataChanged();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
void initDefaultLayers();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
QList<LayerData> m_layers;
|
|
|
|
|
|
};
|