感谢楼主分享,另外,发现几处bug,会有死循环,占用cpu,如下:在paintEvent中调用setStyleSheet,有几个类中有类似的bug
void FancyButton::setColor(const QColor &color)
{
if (m_hasBorder) {
setStyleSheet(QString("QToolButton::menu-indicator { image: None; }"
"QToolButton{background-color: transparent;color: #%1;}")
.arg(QCanpool::colorToArgb(color)));
}
else {
setStyleSheet(QString("QToolButton::menu-indicator { image: None; }"
"QToolButton{background-color: transparent;color: #%1;border:none;}")
.arg(QCanpool::colorToArgb(color)));
}
}
void FancyButton::paintEvent(QPaintEvent *event)
{
if (m_bMousePress) {
painterInfo(m_pressColor);
} else if (m_bMouseHover) {
painterInfo(m_hoverColor);
} else {
setColor(m_textColor);
if (m_normalColor.isValid()) {
painterInfo(m_normalColor);
}
}
QToolButton::paintEvent(event);
}