TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musiclrcmanagerforinterior.cpp
Go to the documentation of this file.
2 #include "musicsettingmanager.h"
3 #include "musicwidgetutils.h"
4 
6  : MusicLrcManager(parent),
7  m_gradientFontSize(0),
8  m_gradientTransparent(100)
9 {
10  setAlignment(Qt::AlignCenter);
11 
12  m_font.setPointSize(15);
13  m_speedLevel = 40;
15  m_position.setY(35);
16 }
17 
19 {
20  QPainter painter(this);
21  painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
22 
23  QFont font(m_font);
24  int value = font.pointSize() - m_gradientFontSize;
25  font.setPointSize(value < 0 ? 0 : value);
26  painter.setFont(font);
27  m_position.setX(TTK::Widget::fontTextWidth(font, text()));
28 
29  const int fontHeight = TTK::Widget::fontTextHeight(font);
30  m_linearGradient.setFinalStop(0, fontHeight);
31  m_maskLinearGradient.setFinalStop(0, fontHeight);
32 
34  {
36  }
37  //Draw the underlying text, such as shadow, will make the effect more clearly, and more texture
38  value = 2.55 * m_gradientTransparent;
39  painter.setPen(QColor(0, 0, 0, value));
40 
41  value = (m_lrcPerWidth - m_position.x()) / 2.0;
42  painter.drawText((value < 0 ? m_intervalCount : value) + 1, 1, m_position.x(), m_position.y(), Qt::AlignLeft | Qt::AlignVCenter, text());
43 
44  //Then draw a gradient in the above
45  painter.setPen(QPen(m_linearGradient, 0));
46  painter.drawText(value < 0 ? m_intervalCount : value, 0, m_position.x(), m_position.y(), Qt::AlignLeft | Qt::AlignVCenter, text());
47 
48  int offsetValue = m_lrcMaskWidth;
50  {
51  offsetValue = (m_lrcMaskWidth != 0) ? m_position.x() : m_lrcMaskWidth;
52  }
53 
54  //Set lyrics mask
55  painter.setPen(QPen(m_maskLinearGradient, 0));
56  painter.drawText(value < 0 ? m_intervalCount : value, 0, offsetValue, m_position.y(), Qt::AlignLeft | Qt::AlignVCenter, text());
57 }
The class of the lrc manager base.
virtual void paintEvent(QPaintEvent *event) overridefinal
MusicLrcManagerForInterior(QWidget *parent=nullptr)
float m_lrcMaskWidthInterval
QLinearGradient m_maskLinearGradient
static constexpr int LRC_PER_WIDTH
TTK_MODULE_EXPORT int fontTextWidth(const QFont &font, const QString &text)
TTK_MODULE_EXPORT int fontTextHeight(const QFont &font)
QLinearGradient m_linearGradient
#define G_SETTING_PTR