#ifndef CARD_LIST_WIDGET_H #define CARD_LIST_WIDGET_H #include #include #include #include // 卡片数据结构 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