Files
Radio/module/F/global.h
T
2026-06-16 13:38:08 +08:00

64 lines
1.4 KiB
C++

#ifndef F_GLOBAL_H
#define F_GLOBAL_H
#include <QAbstractListModel>
#include <QDebug>
#include <QListView>
#include <QPainter>
#include <QPixmap>
#include <QStyledItemDelegate>
#include <QVariant>
#include <QtWidgets>
#include <variant>
#include "component/SVG.h"
template <typename T>
class Model_导航 : public QAbstractListModel {
public:
explicit Model_导航(QObject* parent = nullptr) : QAbstractListModel(parent) {}
int rowCount(const QModelIndex& parent = QModelIndex()) const override { return items.size(); }
QVariant data(const QModelIndex& index, int role) const override {
if (!index.isValid() || index.row() >= items.size())
{
return QVariant();
}
if (role == Qt::DisplayRole)
{
int i = index.row();
return QVariant::fromValue(items[i]);
}
return QVariant();
}
void setDataList(const QVector<T>& dataList) {
beginResetModel();
items = dataList;
endResetModel();
}
QVector<T> items;
};
struct _Dat1 {
QString text;
QString title;
QString detail;
SVGImage_Render icon;
QWidget* widget{};
};
struct _Dat2 {
QString text;
};
class _Dat {
public:
_Dat() {}
std::variant<_Dat1, _Dat2> data;
_Dat(const std::variant<_Dat1, _Dat2>& data) : data(data) {}
};
Q_DECLARE_METATYPE(_Dat)
#endif