MCPcopy Create free account
hub / github.com/Liniyous/ElaWidgetTools / paintEvent

Method paintEvent

ElaWidgetTools/ElaRollerPicker.cpp:194–223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192}
193
194void ElaRollerPicker::paintEvent(QPaintEvent* event)
195{
196 Q_D(ElaRollerPicker);
197 QPainter painter(this);
198 painter.save();
199 painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
200 // 边框和背景绘制
201 QRect baseRect = rect();
202 baseRect.adjust(1, 1, -1, -1);
203 painter.setPen(ElaThemeColor(d->_themeMode, BasicBorder));
204 painter.setBrush(underMouse() ? ElaThemeColor(d->_themeMode, BasicHover) : ElaThemeColor(d->_themeMode, BasicBase));
205 painter.drawRoundedRect(baseRect, d->_pBorderRadius, d->_pBorderRadius);
206
207 // Roller内容绘制
208 int rollerXOffset = 0;
209 for (int i = 0; i < d->_rollerPickerContainer->_rollerList.count(); i++)
210 {
211 auto roller = d->_rollerPickerContainer->_rollerList[i];
212 painter.setPen(ElaThemeColor(d->_themeMode, BasicText));
213 int rollerWidth = roller->width();
214 painter.drawText(QRect(rollerXOffset, baseRect.y(), rollerWidth, baseRect.height()), Qt::AlignCenter, roller->getCurrentData());
215 rollerXOffset += rollerWidth;
216 if (i != d->_rollerPickerContainer->_rollerList.count() - 1)
217 {
218 painter.setPen(ElaThemeColor(d->_themeMode, BasicBorder));
219 painter.drawLine(rollerXOffset, 0, rollerXOffset, baseRect.bottom());
220 }
221 }
222 painter.restore();
223}

Callers

nothing calls this directly

Calls 2

countMethod · 0.80
getCurrentDataMethod · 0.45

Tested by

no test coverage detected