DtkWidget 5.6.0.2
DTK Widget module
dthememanager.h
1// SPDX-FileCopyrightText: 2015 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DTHEMEMANAGER_H
6#define DTHEMEMANAGER_H
7
8#include <QObject>
9#include <QString>
10#include <QGlobalStatic>
11
12#include <DObject>
13#include <dtkwidget_global.h>
14
15DWIDGET_BEGIN_NAMESPACE
16
17class DThemeManagerPrivate;
18class LIBDTKWIDGETSHARED_EXPORT D_DECL_DEPRECATED DThemeManager : public QObject, public DTK_CORE_NAMESPACE::DObject
19{
20 Q_OBJECT
21
22public:
23 static DThemeManager *instance();
24
25 QString theme() const;
26 QString theme(const QWidget *widget, QWidget **baseWidget = nullptr) const;
27 void setTheme(const QString theme);
28 void setTheme(QWidget *widget, const QString theme);
29
30 QString getQssForWidget(const QString className, const QString &theme = QString()) const;
31 QString getQssForWidget(const QWidget *widget) const;
32
33 static void registerWidget(QWidget *widget, QStringList properties = QStringList());
34 // TODO: use blow instead, the only thing should do is rebuilding
35 // static void registerWidget(QWidget *widget, const QStringList &properties = QStringList());
36 static void registerWidget(QWidget *widget, const QString &filename, const QStringList &properties = QStringList());
37
38public Q_SLOTS:
39 void updateQss();
40 void updateThemeOnParentChanged(QWidget *widget);
41
43 void themeChanged(QString theme);
44 void widgetThemeChanged(QWidget *widget, QString theme);
45
46protected:
48 bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
49
50private:
51 friend class DApplication;
52 D_DECLARE_PRIVATE(DThemeManager)
53};
54
55DWIDGET_END_NAMESPACE
56
57#endif // DTHEMEMANAGER_H
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition: dapplication.h:31
DThemeManager 类提供了管理控件主题文件的工具函数.
Definition: dthememanager.h:19
void widgetThemeChanged(QWidget *widget, QString theme)
widgetThemeChanged 信号在特定控件主题发生改变时触发.
void themeChanged(QString theme)
themeTypeChanged 信号在应用程序主题发生变化时触发.
Q_SIGNALSQ_SIGNALS
Q_SLOTSQ_SLOTS
virtual bool eventFilter(QObject *watched, QEvent *event)