DtkWidget 5.6.0.2
DTK Widget module
Public 槽 | 信号 | Public 成员函数 | 静态 Public 成员函数 | Protected 成员函数 | 友元 | 所有成员列表
Dtk::Widget::DThemeManager类 参考

DThemeManager 类提供了管理控件主题文件的工具函数. 更多...

类 Dtk::Widget::DThemeManager 继承关系图:
Inheritance graph
[图例]
Dtk::Widget::DThemeManager 的协作图:
Collaboration graph
[图例]

Public 槽

void updateQss ()
 DThemeManager::updateQss This slot repolishes the theme applied on the sender widget. 更多...
 
void updateThemeOnParentChanged (QWidget *widget)
 DThemeManager::updateThemeOnParentChanged 槽函数用于在控件的 父控件发生改变时更新控件的主题样式。 widget 为待刷新样式的控件。
 

信号

void themeChanged (QString theme)
 themeTypeChanged 信号在应用程序主题发生变化时触发. 更多...
 
void widgetThemeChanged (QWidget *widget, QString theme)
 widgetThemeChanged 信号在特定控件主题发生改变时触发. 更多...
 

Public 成员函数

QString theme () const
 DThemeManager::theme 更多...
 
QString theme (const QWidget *widget, QWidget **baseWidget=nullptr) const
 DThemeManager::theme 用于找到 widget 距离最近、并且设置了主题的上级控件, 并返回这个主题的名称。如果上级控件都没有设置主题,则返回程序级别的主题名称。 更多...
 
void setTheme (const QString theme)
 DThemeManager::setTheme sets the application theme. theme is the theme name to be set. 更多...
 
void setTheme (QWidget *widget, const QString theme)
 DThemeManager::setTheme sets theme on a widget. widget is the target widget. theme is the name of theme to be set. 更多...
 
QString getQssForWidget (const QString className, const QString &theme=QString()) const
 DThemeManager::getQssForWidget searches for the theme file of one class in a specific theme. className is the name of the class. theme is the name of the theme to be applied. 更多...
 
QString getQssForWidget (const QWidget *widget) const
 DThemeManager::getQssForWidget This function is overloaded. widget is the target widget. 更多...
 
- Public 成员函数 继承自 QObject
virtual const QMetaObjectmetaObject () const const
 
 QObject (QObject *parent)
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThreadthread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

静态 Public 成员函数

static DThemeManagerinstance ()
 DThemeManager::instance 用于获取 DThemeManager 的全局实例。 更多...
 
static void registerWidget (QWidget *widget, QStringList properties=QStringList())
 DThemeManager::registerWidget 用于将控件注册到 DThemeManager 的管理范围内。 只有通过 registerWidget() 注册的控件才会受到 DThemeManager 的自动管理, 通常注册的动作都会在实例的构造过程中完成。properties 参数用来注册属性, 注册的属性发生变化时 DThemeManager 会自动刷新控件的样式。 widget 需要注册的控件。 properties 需要注册的控件属性。
 
static void registerWidget (QWidget *widget, const QString &filename, const QStringList &properties=QStringList())
 DThemeManager::registerWidget 用于将控件注册到 DThemeManager 的管理范围内。 widget 需要注册的控件。 filename 需要注册的控件所对应的主题文件名。 properties 需要注册的控件属性。 更多...
 
- 静态 Public 成员函数 继承自 QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 

Protected 成员函数

bool eventFilter (QObject *watched, QEvent *event) Q_DECL_OVERRIDE
 
- Protected 成员函数 继承自 QObject
QObjectsender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 

友元

class DApplication
 

额外继承的成员函数

- Public 属性 继承自 QObject
typedef QObjectList
 
- 属性 继承自 QObject
 objectName
 

详细描述

DThemeManager 类提供了管理控件主题文件的工具函数.

\inmodule dtkwidget

The DThemeManager class provides helper to manage theme files of widgets.

The DThemeManager is singleton class, DThemeManager::instance is used to get an instance of DThemeManager.

DThemeManager can be used to get the current application theme, find the corresponding theme file of a widget.

在 DTK 中,目前只有 light 和 dark 两种风格的主题,主题文件是为单个控件所创建 的 QSS 文件,并且以 .theme 结尾,每个控件都应该有对应的 light 和 dark 两套主题文件。

主题在应用范围上分为程序级别的主题和控件级别的主题,程序中的控件默认使用程序级别的 主题 theme(), 控件也可以使用 setTheme(QWidget *widget, const QString theme)单独设置不同的主题风格, 这种情况下控件的子控件都会继承其父控件设置的主题,而不再使用程序级别的主题。

注解
DThemeManager 是单实例的,也就是说通常情况下使用者无法创建 DThemeManager 对象, 而是通过 DThemeManager::instance 方法来获取到全局的 DThemeManager 实例。
警告
只有使用 DThemeManager::registerWidget 进行注册的控件才会纳入 DThemeManager 的正常管理流程。

成员函数说明

◆ eventFilter()

bool Dtk::Widget::DThemeManager::eventFilter ( QObject watched,
QEvent event 
)
protectedvirtual

重载 QObject .

◆ getQssForWidget() [1/2]

QString Dtk::Widget::DThemeManager::getQssForWidget ( const QString  className,
const QString theme = QString() 
) const

DThemeManager::getQssForWidget searches for the theme file of one class in a specific theme. className is the name of the class. theme is the name of the theme to be applied.

返回
The content of the theme file.
注解
The class name should have no namespace prefixes.

DThemeManager::getQssForWidget 用于获取特定类在特定主题下的样式内容。 className 为指定的类名称,className 需要跟控件对应的主题文件名对应。 theme 为指定的主题名称。

返回
主题文件的内容。

◆ getQssForWidget() [2/2]

QString Dtk::Widget::DThemeManager::getQssForWidget ( const QWidget *  widget) const

DThemeManager::getQssForWidget This function is overloaded. widget is the target widget.

返回
The content of the theme file to be applied on the widget.

DThemeManager::getQssForWidget 控件的主题样式内容。 widget 为指定的控件。

返回
主题文件的内容。

◆ instance()

DThemeManager * Dtk::Widget::DThemeManager::instance ( )
static

DThemeManager::instance 用于获取 DThemeManager 的全局实例。

返回
DThemeManager 全局实例。

◆ registerWidget()

void Dtk::Widget::DThemeManager::registerWidget ( QWidget *  widget,
const QString filename,
const QStringList properties = QStringList() 
)
static

DThemeManager::registerWidget 用于将控件注册到 DThemeManager 的管理范围内。 widget 需要注册的控件。 filename 需要注册的控件所对应的主题文件名。 properties 需要注册的控件属性。

参见
registerWidget(QWidget *widget, QStringList properties)

◆ setTheme() [1/2]

void Dtk::Widget::DThemeManager::setTheme ( const QString  theme)

DThemeManager::setTheme sets the application theme. theme is the theme name to be set.

DThemeManager::setTheme 用于设置当前程序的主题。 theme 为指定的主题名称。

◆ setTheme() [2/2]

void Dtk::Widget::DThemeManager::setTheme ( QWidget *  widget,
const QString  theme 
)

DThemeManager::setTheme sets theme on a widget. widget is the target widget. theme is the name of theme to be set.

DThemeManager::setTheme 用于给特定的控件设置主题。

注解
控件的子控件也会继承设置的主题风格。 widget 为需要设置主题的控件。 theme 为指定的主题名称。

◆ theme() [1/2]

QString Dtk::Widget::DThemeManager::theme ( ) const

DThemeManager::theme

DThemeManager::theme 用于获取当前程序使用的主题名称。 value are "light" and "dark".

返回
程序使用的主题名称。
the theme name currently be used by this application, the possible

◆ theme() [2/2]

QString Dtk::Widget::DThemeManager::theme ( const QWidget *  widget,
QWidget **  baseWidget = nullptr 
) const

DThemeManager::theme 用于找到 widget 距离最近、并且设置了主题的上级控件, 并返回这个主题的名称。如果上级控件都没有设置主题,则返回程序级别的主题名称。

widget 目标控件。 baseWidget 待返回的上级控件。

返回
指定控件应该使用的主题名称。

◆ themeChanged

void Dtk::Widget::DThemeManager::themeChanged ( QString  theme)
signal

themeTypeChanged 信号在应用程序主题发生变化时触发.

theme 新的主题类型

默认情况下,DApplication 会在处理 QEvent::ApplicationPaletteChange 事件时自动更新应用程序的主题类型,此操作可能会导致此信号的触发。

参见
DThemeManager::setTheme

◆ updateQss

void Dtk::Widget::DThemeManager::updateQss ( )
slot

DThemeManager::updateQss This slot repolishes the theme applied on the sender widget.

This slot is triggered when the property of a registered widget changes, it's useful because Qt has no support of repolishing the style if some custom properties used in the QSS file has changed.

DThemeManager::updateQss 槽函数会刷新信号发送者的样式。

◆ widgetThemeChanged

void Dtk::Widget::DThemeManager::widgetThemeChanged ( QWidget *  widget,
QString  theme 
)
signal

widgetThemeChanged 信号在特定控件主题发生改变时触发.

widget 对应的控件指针, theme 切换的主题类型。


该类的文档由以下文件生成: