EnergySpectrumAnalyer/src/NuclideLib/NuclideLib.h

51 lines
1.3 KiB
C
Raw Normal View History

#ifndef NUCLIDELIBMANAGE_H
#define NUCLIDELIBMANAGE_H
#include <QWidget>
#include <QMap>
#include <QVector>
#include <QStyledItemDelegate>
#include <QStandardItemModel>
namespace Ui {
class NuclideLibManage;
}
class ButtonDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit ButtonDelegate(QObject *parent = nullptr);
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override;
signals:
void buttonClicked(const QModelIndex &index) const;
};
class NuclideLibManage : public QWidget
{
Q_OBJECT
public:
explicit NuclideLibManage(QWidget *parent = nullptr);
~NuclideLibManage();
private slots:
void on_pushButton_add_clicked();
void on_pushButton_edit_clicked();
void on_pushButton_del_clicked();
void onButtonClicked(const QModelIndex &index); // 响应委托按钮点击
private:
void loadNuclideData();
QStringList getNuclideData(const QString &id);
Ui::NuclideLibManage *ui;
QStandardItemModel *m_model;
ButtonDelegate *m_delegate;
QVector<QStringList> m_listNuclide; // 缓存原始核素数据ID + 各字段)
};
#endif // NUCLIDELIBMANAGE_H