#pragma once #include #include #include #include class ImageTileWidget : public QWidget { Q_OBJECT public: explicit ImageTileWidget(QWidget* parent = nullptr); void setImagePath(const QString& path); void setImage(const QImage& image); QString imagePath() const { return m_path; } // 添加设置和获取别名的方法 void setAlias(const QString& alias) { m_alias = alias; } QString alias() const { return m_alias; } void setSelected(bool sel); bool isSelected() const { return m_selected; } void setExpanded(bool expanded); bool isExpanded() const { return m_expanded; } QSize sizeHint() const override; signals: void clicked(); void shrinkRequested(); protected: void paintEvent(QPaintEvent*) override; void mousePressEvent(QMouseEvent*) override; void resizeEvent(QResizeEvent*) override; private: void updateShrinkButtonPosition(); QString getImageInfo() const; QString m_path; QString m_alias; // 添加别名字段 QPixmap m_pix; bool m_selected {false}; bool m_expanded {false}; QPushButton* m_shrinkButton {nullptr}; };