1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #include "logowidget.h"
- #include "ui_logowidget.h"
- LogoWidget::LogoWidget(QWidget* parent) :
- QWidget(parent),
- ui(new Ui::LogoWidget)
- {
- ui->setupUi(this);
- setMouseTracking(true);
- }
- LogoWidget::~LogoWidget()
- {
- delete ui;
- }
- QString LogoWidget::filePath() const
- {
- return m_filePath;
- }
- void LogoWidget::setFilePath(const QString& filePath)
- {
- m_filePath = filePath;
- qDebug() << filePath;
- update();
- }
- void LogoWidget::paintEvent(QPaintEvent* event)
- {
- QPoint pt = mapFromGlobal(cursor().pos());
- Q_UNUSED(event)
- QPainter painter;
- painter.begin(this);
- painter.setRenderHints(QPainter::HighQualityAntialiasing);
- painter.save();
- QPainterPath path;
- path.addEllipse(6, 6, width() - 12, height() - 12);
- painter.setClipPath(path);
- if (path.contains(pt))
- {
- QPen pen;
- pen.setColor(QColor(173, 216, 230));
- pen.setWidth(2);
- painter.setPen(pen);
- }
- else
- {
- painter.setPen(Qt::NoPen);
- }
- QPixmap pix(m_filePath);
- pix = pix.scaled(width(), height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
- QRect rc = QRect(0, 0, width(), height());
- painter.drawPixmap(rc, pix);
- painter.drawPath(path);
- painter.restore();
- painter.end();
- }
- void LogoWidget::focusInEvent(QFocusEvent* event)
- {
- update();
- }
- void LogoWidget::focusOutEvent(QFocusEvent* event)
- {
- update();
- }
- void LogoWidget::mouseMoveEvent(QMouseEvent* event)
- {
- update();
- }
|