Files
Qt-Music-Player/src/components/albumTile/albumtile.cpp

43 lines
1.1 KiB
C++

#include "albumtile.h"
#include <QPixmap>
#include <QMouseEvent>
AlbumTile::AlbumTile(const AlbumData& item, QWidget* parent)
: QWidget(parent), item_(item)
{
auto* layout = new QVBoxLayout(this);
layout->setAlignment(Qt::AlignCenter);
layout->setSpacing(6);
// Cover Image
QPixmap pix(item.imagePath);
QLabel* cover = new QLabel;
cover->setPixmap(
pix.scaled(200, 200, Qt::KeepAspectRatio, Qt::SmoothTransformation)
);
cover->setAlignment(Qt::AlignCenter);
// Album Label
QLabel* albumLabel = new QLabel(item.album);
albumLabel->setAlignment(Qt::AlignCenter);
albumLabel->setStyleSheet("font-weight: 600; font-size: 14px;");
// Artist Label
QLabel* artistLabel = new QLabel(item.artist);
artistLabel->setAlignment(Qt::AlignCenter);
artistLabel->setStyleSheet("color: #888; font-size: 12px;");
layout->addWidget(cover);
layout->addWidget(albumLabel);
layout->addWidget(artistLabel);
setCursor(Qt::PointingHandCursor);
}
// Simple click handler
void AlbumTile::mousePressEvent(QMouseEvent* event)
{
emit activated(item_);
QWidget::mousePressEvent(event);
}