EnergySpectrumAnalyer/src/NuclideLib/NuclideLib.h

51 lines
1.3 KiB
C++
Raw 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 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