DtkGui
DTK Gui module
|
DGuiApplicationHelper 应用程序的 GUI ,如主题、调色板等. 更多...
Public 类型 | |
enum | ColorType { UnknownType , LightType , DarkType } |
enum | SingleScope { UserScope , GroupScope , WorldScope } |
enum | SizeMode { NormalMode , CompactMode } |
控件大小模式枚举包含 dtk支持的控件大小模式种类. 更多... | |
enum | Attribute { UseInactiveColorGroup = 1 << 0 , ColorCompositing = 1 << 1 , DontSaveApplicationTheme = 1 << 2 , ReadOnlyLimit = 1 << 22 , IsDeepinPlatformTheme = ReadOnlyLimit << 0 , IsDXcbPlatform = ReadOnlyLimit << 1 , IsXWindowPlatform = ReadOnlyLimit << 2 , IsTableEnvironment = ReadOnlyLimit << 3 , IsDeepinEnvironment = ReadOnlyLimit << 4 , IsSpecialEffectsEnvironment = ReadOnlyLimit << 5 , IsWaylandPlatform = ReadOnlyLimit << 6 , Q_DECL_ENUMERATOR_DEPRECATED_X =("Use DGuiApplicationHelper::IsWaylandPlatform instead") = IsWaylandPlatform , HasAnimations = ReadOnlyLimit << 7 } |
Public 槽 | |
void | setPaletteType (ColorType paletteType) |
设置程序所应用的调色板类型. | |
void | handleHelpAction () |
Open manual for this application. | |
static void | openUrl (const QString &url) |
DGuiApplicationHelper::SizeMode | sizeMode () const |
当前应用的控件大小模式。 | |
void | setSizeMode (const DGuiApplicationHelper::SizeMode mode) |
设置应用控件大小模式,应用使用的为此模式,不再响应系统的控件大小模式。 | |
void | resetSizeMode () |
重置设置应用控件大小模式,跟随系统的控件大小模式。 | |
static bool | isCompactMode () |
当前控件大小模式是否为紧凑模式。 | |
信号 | |
void | themeTypeChanged (ColorType themeType) |
void | paletteTypeChanged (ColorType paletteType) |
void | newProcessInstance (qint64 pid, const QStringList &arguments) |
通知新进程的信息。 | |
void | fontChanged (const QFont &font) |
void | applicationPaletteChanged () |
通知调色板对象的改变。 | |
void | sizeModeChanged (DGuiApplicationHelper::SizeMode sizeMode) |
通知控件大小模式发生改变。 | |
Public 成员函数 | |
DPlatformTheme * | systemTheme () const |
DGuiApplicationHelper::systemTheme. | |
DPlatformTheme * | applicationTheme () const |
DGuiApplicationHelper::applicationTheme. | |
DPalette | applicationPalette () const |
DPalette | applicationPalette (ColorType paletteType) const |
返回应用程序调色板. | |
void | setApplicationPalette (const DPalette &palette) |
DGuiApplicationHelper::setApplicationPalette. | |
const DFontManager * | fontManager () const |
DGuiApplicationHelper::fontManager. | |
ColorType | themeType () const |
返回程序的主题类型. | |
ColorType | paletteType () const |
返回当前已设置的调色板类型. | |
bool | hasUserManual () const |
Determine whether it's a user manual for this application. | |
静态 Public 成员函数 | |
static DGuiApplicationHelper * | instance () |
DGuiApplicationHelper::instance返回 DGuiApplicationHelper 对象 | |
static QColor | adjustColor (const QColor &base, qint8 hueFloat, qint8 saturationFloat, qint8 lightnessFloat, qint8 redFloat, qint8 greenFloat, qint8 blueFloat, qint8 alphaFloat) |
调整颜色. | |
static QImage | adjustColor (const QImage &base, qint8 hueFloat, qint8 saturationFloat, qint8 lightnessFloat, qint8 redFloat, qint8 greenFloat, qint8 blueFloat, qint8 alphaFloat) |
调整图片整体像素颜色. | |
static QColor | blendColor (const QColor &substrate, const QColor &superstratum) |
将两种颜色混合,合成新的颜色. | |
static DPalette | standardPalette (ColorType type) |
根据主题获取标准调色板. | |
static void | generatePaletteColor (DPalette &base, QPalette::ColorRole role, ColorType type) |
获取调色板颜色. | |
static void | generatePaletteColor (DPalette &base, DPalette::ColorType role, ColorType type) |
加工调色板的颜色. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.一般我们只会为调色板的 QPalette::Normal 组设置颜色值, 但是 控件中也需要使用其他组的颜色, 此函数使用一些固定规则为 base 填充 QPalette::Disabled 和 QPalette::Inactive 分组的颜色. 不同的颜色类型会使用不同的加工规则, 如果为 LightType 类型, 则将颜色的alpha通道调整为 0.6 后作为 QPalette::Disabled 类的颜色使用, 调整为 0.4 后 作为 QPalette::Inactive 类的颜色使用. 如果为 DarkType 类型, 则将颜色的alpha通道调整为 0.7 后作为 QPalette::Disabled 类的颜色使用, 调整为 0.6 后作为 QPalette::Inactive 类的颜色使用. | |
static void | generatePalette (DPalette &base, ColorType type=UnknownType) |
加工调色板的颜色. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.同 generatePaletteColor, 将直接调用 generatePaletteColor 加工 所有类型的调色板颜色. | |
static DPalette | fetchPalette (const DPlatformTheme *theme) |
获取调色板数据. | |
static bool | isXWindowPlatform () |
static bool | isTabletEnvironment () |
用于判断当前桌面环境是否是平板电脑环境. | |
static bool | isSpecialEffectsEnvironment () |
isAnimationEnvironment 用于判断当前桌面环境是否是开启了动画等特效的环境 | |
static void | setAttribute (Attribute attribute, bool enable) |
static bool | testAttribute (Attribute attribute) |
static ColorType | toColorType (const QColor &color) |
获取颜色的明亮度,将其转换为主题类型的枚举值. | |
static ColorType | toColorType (const QPalette &palette) |
将调色板 palette 转换为主题类型的枚举. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.使用 QPalette::background 获取颜色的明亮度,将其转换为主题类型的枚举值。 返回调色板的颜色类型 | |
static bool | setSingleInstance (const QString &key, SingleScope singleScope=UserScope) |
设置DGuiApplicationHelper实例. | |
static void | setSingleInstanceInterval (int interval=3000) |
设置从QLocalServer获取消息的等待时间. | |
static QStringList | userManualPaths (const QString &appName) |
获取帮助手册目录 | |
static bool | loadTranslator (const QString &fileName, const QList< QString > &translateDirs, const QList< QLocale > &localeFallback) |
static bool | loadTranslator (const QList< QLocale > &localeFallback=QList< QLocale >()<< QLocale::system()) |
Protected 成员函数 | |
virtual void | initialize () |
属性 | |
ColorType | themeType |
ColorType | paletteType |
bool | hasUserManual |
友元 | |
class | _DGuiApplicationHelper |
DGuiApplicationHelper 应用程序的 GUI ,如主题、调色板等.
DGuiApplicationHelper类提供了一个gui应用程序的应用帮助类,可提供widget和declarative的 公共gui功能,例如调色板、字体、主题等功能。
\inmodule dtkgui
DGuiApplicationHelper::Attribute 定义了功能属性
DGuiApplicationHelper::ColorType 定义了主题类型.
枚举值 | |
---|---|
UnknownType | 未知主题(浅色主题或深色主题) |
LightType | 浅色主题 |
DarkType | 深色主题 |
控件大小模式枚举包含 dtk支持的控件大小模式种类.
值 | 含义 |
---|---|
NormalMode | 普通模式,为默认模式 |
CompactMode | 紧凑模式 |
|
static |
调整颜色.
base | 基础色 |
hueFloat | 色调 |
saturationFloat | 饱和度 |
lightnessFloat | 亮度 |
redFloat | 红色 |
greenFloat | 绿色 |
blueFloat | 蓝色 |
alphaFloat | Alpha通道(透明度) |
|
static |
调整图片整体像素颜色.
base | 基础色 |
hueFloat | 色调 |
saturationFloat | 饱和度 |
lightnessFloat | 亮度 |
redFloat | 红色 |
greenFloat | 绿色 |
blueFloat | 蓝色 |
alphaFloat | Alpha通道(透明度) |
返回应用程序调色板.
如果使用 setApplicationPalette 设置过一个有效的调色板, 将直接返回保存的调色板. 否则 先计算调色板的ColorType, 再使用这个颜色类型通过 standardPalette 获取标准调色板. 计算 ColorType的数据来源按优先级从高到低排列有以下几种方式:
|
signal |
通知调色板对象的改变。
DPlatformTheme * Dtk::Gui::DGuiApplicationHelper::applicationTheme | ( | ) | const |
|
static |
将两种颜色混合,合成新的颜色.
substrate | 底层颜色 |
superstratum | 上层颜色 |
|
static |
获取调色板数据.
首先根据 DPlatformTheme::themeName 获取主题的颜色类型, 如果名称以 "dark" 结尾则认为其颜色类型为 DarkType, 否则为 LightType. 如果主题名称为空, 将使用其父主题的名称( DPlatformTheme::fallbackProperty ). 根据颜色类型将使用 standardPalette 获取基础调色板数据, 在此基础上 从 DPlatformTheme::fetchPalette 获取最终的调色板.
theme | 平台主题对象 |
const DFontManager * Dtk::Gui::DGuiApplicationHelper::fontManager | ( | ) | const |
DGuiApplicationHelper::fontManager.
程序中唯一的DFontManager对象, 会根据程序的fontChanged信号 更新 DFontManager::baseFontPixelSize
|
static |
加工调色板的颜色. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.同 generatePaletteColor, 将直接调用 generatePaletteColor 加工 所有类型的调色板颜色.
base | 被加工的调色板 |
type | 加工时所使用的颜色类型, 如果值为 UnknownType 将使用 toColorType 获取颜色类型 |
|
static |
加工调色板的颜色. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.一般我们只会为调色板的 QPalette::Normal 组设置颜色值, 但是 控件中也需要使用其他组的颜色, 此函数使用一些固定规则为 base 填充 QPalette::Disabled 和 QPalette::Inactive 分组的颜色. 不同的颜色类型会使用不同的加工规则, 如果为 LightType 类型, 则将颜色的alpha通道调整为 0.6 后作为 QPalette::Disabled 类的颜色使用, 调整为 0.4 后 作为 QPalette::Inactive 类的颜色使用. 如果为 DarkType 类型, 则将颜色的alpha通道调整为 0.7 后作为 QPalette::Disabled 类的颜色使用, 调整为 0.6 后作为 QPalette::Inactive 类的颜色使用.
base | 被加工的调色板 |
role | 加工的项 |
type | 加工时所使用的颜色类型, 如果值为 UnknownType 将使用 toColorType 获取颜色类型 |
|
static |
获取调色板颜色.
base | 调色板 |
role | 色码 |
type | 主题枚举值 |
bool Dtk::Gui::DGuiApplicationHelper::hasUserManual | ( | ) | const |
Determine whether it's a user manual for this application.
|
static |
DGuiApplicationHelper::instance返回 DGuiApplicationHelper 对象
|
static |
isAnimationEnvironment 用于判断当前桌面环境是否是开启了动画等特效的环境
|
static |
用于判断当前桌面环境是否是平板电脑环境.
|
signal |
通知新进程的信息。
单例程序情况下,尝试启动新的程序实例将触发此信号,以便获取所传入的参数列表等信息,来进行进一步处理。
pid | 进程 ID. |
arguments | 启动进程时所传入的参数列表. |
DGuiApplicationHelper::ColorType Dtk::Gui::DGuiApplicationHelper::paletteType | ( | ) | const |
返回当前已设置的调色板类型.
如果未调用过 setPaletteType, 默认为 UnknownType.
void Dtk::Gui::DGuiApplicationHelper::setApplicationPalette | ( | const DPalette & | palette | ) |
DGuiApplicationHelper::setApplicationPalette.
自定义应用程序调色板, 如果没有为 QGuiApplication 设置过 QPalette, 则 将触发 QGuiApplication::palette 的更新. 如果仅需要控制程序使用亮色还是暗色的 调色板, 请使用 setThemeType.
palette | 要设置的调色板 |
|
slot |
设置程序所应用的调色板类型.
将固定程序的调色板类型, 此行为可能导致 applicationPalette 变化, 前提是未使用 setApplicationPalette 固定过程序的调色板, 此方法不影响程序的调色板跟随 活动色改变, 可用于控制程序使用亮色还是暗色调色板.
paletteType | 主题类型的枚举值 |
|
static |
设置DGuiApplicationHelper实例.
key | 实例关键字 |
singleScope | 实例使用范围 |
|
static |
设置从QLocalServer获取消息的等待时间.
用于在重新创建DGuiApplicationHelper单例时,检测DGuiApplicationHelper单例是否存在且有响应
interval | 等待时间,如 interval 为 -1 则没有超时一直等待,默认和 QLocalSocket 一致 3000ms |
|
slot |
设置应用控件大小模式,应用使用的为此模式,不再响应系统的控件大小模式。
sizeMode | 需要设置的控件大小模式. |
|
slot |
当前应用的控件大小模式。
D_DTK_SIZEMODE=1
为指定为普通模式, 当应用没有显示设置控件大小模式,则会采用普通模式。DGuiApplicationHelper::setSizeMode
> D_DTK_SIZEMODE
> System's SizeMode
。
|
static |
根据主题获取标准调色板.
type | 主题枚举值 |
DPlatformTheme * Dtk::Gui::DGuiApplicationHelper::systemTheme | ( | ) | const |
DGuiApplicationHelper::systemTheme.
返回系统级别的主题, 优先级低于 applicationTheme
DGuiApplicationHelper::ColorType Dtk::Gui::DGuiApplicationHelper::themeType | ( | ) | const |
返回程序的主题类型.
当themeType为UnknownType时, 将自动根据 GuiApplication::palette的QPalette::background颜色计算主题 类型, 否则与 paletteType 的值一致. 程序中应当使用此值作为 暗色/亮色主题类型的判断.
|
static |
获取颜色的明亮度,将其转换为主题类型的枚举值.
转换的策略为:先将颜色转换为rgb格式,再根据 Y = 0.299R + 0.587G + 0.114B 的公式 计算出颜色的亮度,亮度大于 191 时认为其为浅色,否则认为其为深色。
color | 需要转换为主题的类型的颜色 |
|
static |
将调色板 palette 转换为主题类型的枚举. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.使用 QPalette::background 获取颜色的明亮度,将其转换为主题类型的枚举值。 返回调色板的颜色类型
palette | 调色板 |
|
static |
获取帮助手册目录
获取帮助手册已存在目录
appName | 目标应用名称 @detail 目录深度具体到appName层级,例:一个典型的目录路径为:/usr/share/deepin-manual/manual-assets/application/appName |