fix: 修复不跟随系统字体问题

This commit is contained in:
hewenfei 2023-11-03 15:09:42 +08:00
parent 7a9c3bf699
commit 13f880e373
3 changed files with 16 additions and 5 deletions

View File

@ -11,18 +11,18 @@ Text {
function updateColor() { function updateColor() {
color = themePalette.paletteColorWithCustomTransparency(paletteRole, Palette.Active, alpha); color = themePalette.paletteColorWithCustomTransparency(paletteRole, Palette.Active, alpha);
} }
function updateFontSize() { function updateFont() {
systemFontSize = themePalette.systemFontSize(); font = themePalette.systemFont();
} }
Component.onCompleted: { Component.onCompleted: {
updateColor(); updateColor();
updateFontSize(); updateFont();
themePalette.styleColorChanged.connect(updateColor); themePalette.styleColorChanged.connect(updateColor);
themePalette.systemFontSizeChanged.connect(updateFontSize); themePalette.systemFontChanged.connect(updateFont);
} }
Component.onDestruction: { Component.onDestruction: {
themePalette.styleColorChanged.disconnect(updateColor); themePalette.styleColorChanged.disconnect(updateColor);
themePalette.systemFontSizeChanged.disconnect(updateFontSize); themePalette.systemFontChanged.disconnect(updateFont);
} }
onPaletteRoleChanged: { onPaletteRoleChanged: {
updateColor(); updateColor();

View File

@ -42,6 +42,9 @@ ThemePalette::ThemePalette(QObject *parent) : QObject(parent)
connect(qGuiApp, &QGuiApplication::paletteChanged, this, [=] { connect(qGuiApp, &QGuiApplication::paletteChanged, this, [=] {
Q_EMIT styleColorChanged(); Q_EMIT styleColorChanged();
}); });
connect(qGuiApp, &QGuiApplication::fontChanged, this, [=] {
Q_EMIT systemFontChanged();
});
} }
QColor ThemePalette::paletteColor(Palette::ColorRole colorRole, Palette::ColorGroup colorGroup) const QColor ThemePalette::paletteColor(Palette::ColorRole colorRole, Palette::ColorGroup colorGroup) const
@ -222,3 +225,8 @@ qreal ThemePalette::systemFontSize() const
{ {
return m_fontSize; return m_fontSize;
} }
QFont ThemePalette::systemFont()
{
return QGuiApplication::font();
}

View File

@ -23,6 +23,7 @@
#include <QObject> #include <QObject>
#include <QPalette> #include <QPalette>
#include <QFont>
#include "settings.h" #include "settings.h"
namespace UkuiMenu { namespace UkuiMenu {
@ -94,9 +95,11 @@ public:
Q_INVOKABLE QColor separator(Palette::ColorGroup colorGroup = Palette::Active) const; Q_INVOKABLE QColor separator(Palette::ColorGroup colorGroup = Palette::Active) const;
Q_INVOKABLE qreal systemFontSize() const; Q_INVOKABLE qreal systemFontSize() const;
Q_INVOKABLE QFont systemFont();
Q_SIGNALS: Q_SIGNALS:
void styleColorChanged(); void styleColorChanged();
void systemFontChanged();
void systemFontSizeChanged(); void systemFontSizeChanged();
private Q_SLOTS: private Q_SLOTS: