diff --git a/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp b/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp index e15a19f9c1..0380ef82d8 100644 --- a/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp +++ b/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp @@ -2263,9 +2263,14 @@ void QWindowsVistaStyle::polish(QWidget *widget) widget->setAttribute(Qt::WA_Hover); #if QT_CONFIG(commandlinkbutton) else if (qobject_cast(widget)) { + widget->setProperty("_qt_usingVistaStyle", true); QFont buttonFont = widget->font(); buttonFont.setFamilies(QStringList{QLatin1String("Segoe UI")}); widget->setFont(buttonFont); + QPalette pal = widget->palette(); + pal.setColor(QPalette::ButtonText, QColor(21, 28, 85)); + pal.setColor(QPalette::BrightText, QColor(7, 64, 229)); + widget->setPalette(pal); } #endif // QT_CONFIG(commandlinkbutton) else if (widget->inherits("QTipLabel")){ diff --git a/src/widgets/widgets/qcommandlinkbutton.cpp b/src/widgets/widgets/qcommandlinkbutton.cpp index 5a82e63f44..2c59e78c1a 100644 --- a/src/widgets/widgets/qcommandlinkbutton.cpp +++ b/src/widgets/widgets/qcommandlinkbutton.cpp @@ -171,7 +171,7 @@ bool QCommandLinkButtonPrivate::usingVistaStyle() const Q_Q(const QCommandLinkButton); //### This is a hack to detect if we are indeed running Vista style themed and not in classic // When we add api to query for this, we should change this implementation to use it. - return q->style()->inherits("QWindowsVistaStyle") + return q->property("_qt_usingVistaStyle").toBool() && q->style()->pixelMetric(QStyle::PM_ButtonShiftHorizontal, nullptr) == 0; } @@ -339,9 +339,9 @@ void QCommandLinkButton::paintEvent(QPaintEvent *) //Draw title QColor textColor = palette().buttonText().color(); if (isEnabled() && d->usingVistaStyle()) { - textColor = QColor(21, 28, 85); + textColor = option.palette.buttonText().color(); if (underMouse() && !isDown()) - textColor = QColor(7, 64, 229); + textColor = option.palette.brightText().color(); //A simple text color transition d->currentColor = d->mergedColors(textColor, d->currentColor, 60); option.palette.setColor(QPalette::ButtonText, d->currentColor);