brisonus_app_eq/widget_file_list/QtWidgetsApplication4.h

59 lines
1.4 KiB
C
Raw Normal View History

2025-02-16 21:24:51 +08:00
#ifndef CARD_LIST_WIDGET_H
#define CARD_LIST_WIDGET_H
#include <QWidget>
#include <QListWidget>
#include <QStyledItemDelegate>
#include <QPainterPath>
// 卡片数据结构
class CardData {
public:
// 添加默认构造函数
CardData() : activated(false) {}
// 保留原有构造函数
CardData(const QString& name, const QString& date, const QString& description);
QString name;
QString date;
QString description;
bool activated;
};
// 自定义委托类来绘制卡片样式
class CardItemDelegate : public QStyledItemDelegate {
Q_OBJECT
public:
explicit CardItemDelegate(QObject* parent = nullptr);
void paint(QPainter* painter, const QStyleOptionViewItem& option,
const QModelIndex& index) const override;
QSize sizeHint(const QStyleOptionViewItem& option,
const QModelIndex& index) const override;
};
// 主窗口类
class MainWindow : public QWidget {
Q_OBJECT
public:
explicit MainWindow(QWidget* parent = nullptr);
private slots:
void onItemDoubleClicked(QListWidgetItem* item);
void showContextMenu(const QPoint& pos);
void sendToDevice(QListWidgetItem* item);
void editItem(QListWidgetItem* item);
void deleteItem(QListWidgetItem* item);
void showInExplorer(QListWidgetItem* item);
private:
void addCardItem(const CardData& data);
void setupUI();
void setupStyle();
QListWidget* listWidget;
};
#endif // CARD_LIST_WIDGET_H