DtkWidget 5.6.0.2
DTK Widget module
Public 类型 | Public 成员函数 | 静态 Public 成员函数 | 所有成员列表
Dtk::Widget::DStyle类 参考

DStyle 提供了一个 Dtk 控件的基础类. 更多...

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

Public 类型

enum  PrimitiveElement {
  PE_ItemBackground = QStyle::PE_CustomBase + 1 , PE_IconButtonPanel , PE_IconButtonIcon , PE_Icon ,
  PE_SwitchButtonGroove , PE_SwitchButtonHandle , PE_FloatingWidget , PE_CustomBase = QStyle::PE_CustomBase + 0xf00000
}
 
enum  ControlElement {
  CE_IconButton = QStyle::CE_CustomBase + 1 , CE_SwitchButton , CE_FloatingWidget , CE_ButtonBoxButton ,
  CE_ButtonBoxButtonBevel , CE_ButtonBoxButtonLabel , CE_TextButton , CE_CustomBase = QStyle::CE_CustomBase + 0xf00000
}
 
enum  PixelMetric {
  PM_FocusBorderWidth = QStyle::PM_CustomBase + 1 , PM_FocusBorderSpacing , PM_FrameRadius , PM_ShadowRadius ,
  PM_ShadowHOffset , PM_ShadowVOffset , PM_FrameMargins , PM_IconButtonIconSize ,
  PM_TopLevelWindowRadius , PM_SwitchButtonHandleWidth , PM_SwithcButtonHandleHeight , PM_FloatingWidgetRadius ,
  PM_FloatingWidgetShadowRadius , PM_FloatingWidgetShadowMargins , PM_FloatingWidgetShadowHOffset , PM_FloatingWidgetShadowVOffset ,
  PM_ContentsMargins , PM_ContentsSpacing , PM_ButtonMinimizedSize , PM_CustomBase = QStyle::PM_CustomBase + 0xf00000
}
 
enum  SubElement {
  SE_IconButtonIcon = QStyle::SE_CustomBase + 1 , SE_SwitchButtonGroove , SE_SwitchButtonHandle , SE_FloatingWidget ,
  SE_ButtonBoxButtonContents , SE_ButtonBoxButtonFocusRect , SE_CustomBase = QStyle::SE_CustomBase + 0xf00000
}
 
enum  ContentsType {
  CT_IconButton = QStyle::CT_CustomBase + 1 , CT_SwitchButton , CT_FloatingWidget , CT_ButtonBoxButton ,
  CT_CustomBase = QStyle::CT_CustomBase + 0xf00000
}
 
enum  StyleState {
  SS_NormalState = 0x00000000 , SS_HoverState = 0x00000001 , SS_PressState = 0x00000002 , SS_StateCustomBase = 0x000000f0 ,
  StyleState_Mask = 0x000000ff , SS_CheckedFlag = 0x00000100 , SS_SelectedFlag = 0x00000200 , SS_FocusFlag = 0x00000400 ,
  SS_FlagCustomBase = 0xf00000
}
 
enum  StandardPixmap {
  SP_ForkElement = QStyle::SP_CustomBase + 1 , SP_DecreaseElement , SP_IncreaseElement , SP_MarkElement ,
  SP_SelectElement , SP_EditElement , SP_ExpandElement , SP_ReduceElement ,
  SP_LockElement , SP_UnlockElement , SP_MediaVolumeLowElement , SP_MediaVolumeHighElement ,
  SP_MediaVolumeMutedElement , SP_MediaVolumeLeftElement , SP_MediaVolumeRightElement , SP_ArrowEnter ,
  SP_ArrowLeave , SP_ArrowNext , SP_ArrowPrev , SP_ShowPassword ,
  SP_HidePassword , SP_CloseButton , SP_IndicatorMajuscule , SP_IndicatorSearch ,
  SP_IndicatorUnchecked , SP_IndicatorChecked , SP_DeleteButton , SP_AddButton ,
  SP_TitleQuitFullButton , SP_TitleMoreButton , SP_Title_SS_LeftButton , SP_Title_SS_RightButton ,
  SP_Title_SS_ShowMaximizeButton , SP_Title_SS_ShowNormalButton , SP_CustomBase = QStyle::SP_CustomBase + 0xf00000
}
 

Public 成员函数

 DStyle ()
 DStyle 的默认构造函数.
 
void drawPrimitive (DStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr) const
 
void drawControl (DStyle::ControlElement ce, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr) const
 
int pixelMetric (DStyle::PixelMetric m, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr) const
 
QRect subElementRect (DStyle::SubElement r, const QStyleOption *opt, const QWidget *widget=nullptr) const
 
QSize sizeFromContents (DStyle::ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget=nullptr) const
 
QIcon standardIcon (DStyle::StandardPixmap st, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr) const
 
void drawPrimitive (QStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr) const override
 DStyle::drawPrimitive 更多...
 
void drawControl (QStyle::ControlElement ce, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr) const override
 DStyle::drawControl 更多...
 
int pixelMetric (QStyle::PixelMetric m, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr) const override
 DStyle::pixelMetric 更多...
 
int styleHint (StyleHint sh, const QStyleOption *opt, const QWidget *w, QStyleHintReturn *shret) const override
 DStyle::styleHint 更多...
 
QRect subElementRect (QStyle::SubElement r, const QStyleOption *opt, const QWidget *widget=nullptr) const override
 DStyle::subElementRect 更多...
 
QSize sizeFromContents (QStyle::ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget=nullptr) const override
 DStyle::sizeFromContents 更多...
 
QIcon standardIcon (QStyle::StandardPixmap st, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr) const override
 DStyle::standardIcon 更多...
 
QPalette standardPalette () const override
 获取标准调色板 更多...
 
QPixmap generatedIconPixmap (QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const override
 
QBrush generatedBrush (const QStyleOption *option, const QBrush &base, QPalette::ColorGroup cg=QPalette::Normal, QPalette::ColorRole role=QPalette::NoRole) const
 获取一个加工后的画刷 更多...
 
QBrush generatedBrush (StyleState state, const QStyleOption *option, const QBrush &base, QPalette::ColorGroup cg=QPalette::Normal, QPalette::ColorRole role=QPalette::NoRole) const
 获取一个加工后的画刷 更多...
 
virtual QBrush generatedBrush (StateFlags flags, const QBrush &base, QPalette::ColorGroup cg=QPalette::Normal, QPalette::ColorRole role=QPalette::NoRole, const QStyleOption *option=nullptr) const
 获取一个加工后的画刷 更多...
 
QBrush generatedBrush (const QStyleOption *option, const QBrush &base, DPalette::ColorGroup cg=DPalette::Normal, DPalette::ColorType type=DPalette::ItemBackground) const
 
QBrush generatedBrush (StyleState state, const QStyleOption *option, const QBrush &base, DPalette::ColorGroup cg=DPalette::Normal, DPalette::ColorType type=DPalette::ItemBackground) const
 
virtual QBrush generatedBrush (StateFlags flags, const QBrush &base, DPalette::ColorGroup cg=DPalette::Normal, DPalette::ColorType type=DPalette::ItemBackground, const QStyleOption *option=nullptr) const
 

静态 Public 成员函数

static QColor adjustColor (const QColor &base, qint8 hueFloat=0, qint8 saturationFloat=0, qint8 lightnessFloat=0, qint8 redFloat=0, qint8 greenFloat=0, qint8 blueFloat=0, qint8 alphaFloat=0)
 该函数用于调整给定颜色. 更多...
 
static QColor blendColor (const QColor &substrate, const QColor &superstratum)
 该函数用于混合两种给定颜色. 更多...
 
static QPair< QIcon::Mode, QIcon::State > toIconModeState (const QStyleOption *option)
 根据给定选项值返回图标的模式和状态. 更多...
 
static DDciIcon::Mode toDciIconMode (const QStyleOption *option)
 
static void setTooltipTextFormat (Qt::TextFormat format)
 设置 tooltip 的文本格式. 更多...
 
static Qt::TextFormat tooltipTextFormat ()
 获取 tooltip 文本格式. 更多...
 
static DStyle::StyleState getState (const QStyleOption *option)
 
static void setFocusRectVisible (QWidget *widget, bool visible)
 
static void setFrameRadius (QWidget *widget, int radius)
 
static void setUncheckedItemIndicatorVisible (QWidget *widget, bool visible)
 
static void drawPrimitive (const QStyle *style, DStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr)
 使用给定的 style 风格, pe 原始元素, opt 风格选项, p 画笔,以及 w 窗口, 绘制风格中的原始元素对象. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.类似于 QStyle::drawPrimitive 函数,这里绘制的是 Dtk 控件中的基本原始元素,与 Qt 的接口不同,这个 接口是一个静态函数,通过传递一个 style 参数指定的风格实例,将其内部的绘制操作,都通过 style 中的 接口实现。pe 参数除了包括 QStyle::PrimitiveElement 中的原始元素之外,也包含了 DStyle::PrimitiveElement 枚举中的自定义类型。 更多...
 
static void drawControl (const QStyle *style, DStyle::ControlElement ce, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr)
 使用指定的 style 风格主题、 opt 风格选项、 p 画笔,绘制特定的 ce 控制元素. 更多...
 
static int pixelMetric (const QStyle *style, DStyle::PixelMetric m, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr)
 返回特定的 style 风格下, m 像素标准的值. 更多...
 
static QRect subElementRect (const QStyle *style, DStyle::SubElement r, const QStyleOption *opt, const QWidget *widget=nullptr)
 通过给定的 style 风格, opt 风格选项和 widget 控件,返回 指定的 r 子元素区域矩形。 更多...
 
static QSize sizeFromContents (const QStyle *style, DStyle::ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget=nullptr)
 返回子内容区域的 ct 的大小. 更多...
 
static QIcon standardIcon (const QStyle *style, StandardPixmap st, const QStyleOption *opt=nullptr, const QWidget *widget=0)
 DStyle::standardIcon 更多...
 

详细描述

DStyle 提供了一个 Dtk 控件的基础类.

\inmodule dtkwidget

类似于 QCommonStyle 中的实现, DStyle 中只实现了 一些基础控件的绘制和一个通用接口的实现,如果想要实现 一个自定义的风格主题,可以通过尝试继承该类以实现自己的 功能。不过,仅使用 DStyle 并不会将控件的风格保持和 Dtk 控件一致,这是由于 Dtk 的实际控件风格在 Chameleon 风格 插件中实现。因此如果需要在 Dtk 中继承 Chameleon 风格,并 添加自定义风格的绘制,可以尝试使用 QProxyStyle 类。

参见
QCommonStyle QProxyStyle

成员函数说明

◆ adjustColor()

QColor Dtk::Widget::DStyle::adjustColor ( const QColor &  base,
qint8  hueFloat = 0,
qint8  saturationFloat = 0,
qint8  lightnessFloat = 0,
qint8  redFloat = 0,
qint8  greenFloat = 0,
qint8  blueFloat = 0,
qint8  alphaFloat = 0 
)
static

该函数用于调整给定颜色.

此函数用于调整给定颜色 base 的色彩混合度,通过参数 hueFloat , saturationFloat lightnessFloat , redFloat , greenFloat , blueFloat, 以及 alphaFloat 来控制。其中 hueFloat 表示色调浮动值, saturationFloat 表示饱和度浮动值, lightnessFloat 表示 亮度浮动值, redFloat 表示红色色系的浮动值, greenFloat 表示绿色色系的浮动值, blueFloat 表示蓝色 色系的浮动值, alphaFloat 表示透明度的浮动值。

参见
Dtk::Gui::DGuiApplicationHelper::adjustColor()

◆ blendColor()

QColor Dtk::Widget::DStyle::blendColor ( const QColor &  substrate,
const QColor &  superstratum 
)
static

该函数用于混合两种给定颜色.

此函数用于混合给定的 substrate 以及 superstratum 颜色值,并返回

返回
一个 以此两种颜色为基础的全新颜色。其中, substrate 表示底色, superstratum 表示上层 颜色。
参见
Dtk::Gui::DGuiApplicationHelper::blendColor()

◆ drawControl() [1/2]

void Dtk::Widget::DStyle::drawControl ( const QStyle *  style,
DStyle::ControlElement  ce,
const QStyleOption *  opt,
QPainter *  p,
const QWidget *  w = nullptr 
)
static

使用指定的 style 风格主题、 opt 风格选项、 p 画笔,绘制特定的 ce 控制元素.

控制元素 ce 包括 Qt 的控件和 Dtk 自研控件两种,特定的控制元素,需要将 opt 转换成特定的风格选项。 通常情况下,使用 qstyleoption_cast 进行转换。

w 为需要绘制的控件实例,某些情况下可以传空.

参见
QStyle::drawControl() DStyle::ControlElement

◆ drawControl() [2/2]

void Dtk::Widget::DStyle::drawControl ( QStyle::ControlElement  ce,
const QStyleOption *  opt,
QPainter *  p,
const QWidget *  w = nullptr 
) const
override

DStyle::drawControl

参见
QStyle::drawControl()

◆ drawPrimitive() [1/2]

void Dtk::Widget::DStyle::drawPrimitive ( const QStyle *  style,
DStyle::PrimitiveElement  pe,
const QStyleOption *  opt,
QPainter *  p,
const QWidget *  w = nullptr 
)
static

使用给定的 style 风格, pe 原始元素, opt 风格选项, p 画笔,以及 w 窗口, 绘制风格中的原始元素对象. 这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.类似于 QStyle::drawPrimitive 函数,这里绘制的是 Dtk 控件中的基本原始元素,与 Qt 的接口不同,这个 接口是一个静态函数,通过传递一个 style 参数指定的风格实例,将其内部的绘制操作,都通过 style 中的 接口实现。pe 参数除了包括 QStyle::PrimitiveElement 中的原始元素之外,也包含了 DStyle::PrimitiveElement 枚举中的自定义类型。

opt 参数指定绘制时的各种状态值,不同控件经过不同操作,其状态也会不一样;当 pe 为 PrimitiveElement::PE_IconButtonPanel 时 表示需要绘制一个 IconButton 的面板,因此可以通过传递一个 DStyleOptionButtonopt 实例,并在该实例中指定绘制状态,如 Button 的 features , state 等等信息。 w 参数在绘制某些原始元素时,可以传空,如 PE_ItemBackground 。但大多数情况下,需要指定 w 为被绘制 的控件实例。

参见
QStyle::drawPrimitive()

◆ drawPrimitive() [2/2]

void Dtk::Widget::DStyle::drawPrimitive ( QStyle::PrimitiveElement  pe,
const QStyleOption *  opt,
QPainter *  p,
const QWidget *  w = nullptr 
) const
override

DStyle::drawPrimitive

参见
QStyle::drawPrimitive()

◆ generatedBrush() [1/3]

QBrush Dtk::Widget::DStyle::generatedBrush ( const QStyleOption *  option,
const QBrush &  base,
QPalette::ColorGroup  cg = QPalette::Normal,
QPalette::ColorRole  role = QPalette::NoRole 
) const

获取一个加工后的画刷

base 画刷. option 原始风格选项. cg 调色版中的色组. role 调色板中的颜色角色值

参见
QStyleOption
QPalette::ColorGroup QPalette::ColorRole
返回
加工后的画刷

◆ generatedBrush() [2/3]

QBrush Dtk::Widget::DStyle::generatedBrush ( StateFlags  flags,
const QBrush &  base,
QPalette::ColorGroup  cg = QPalette::Normal,
QPalette::ColorRole  role = QPalette::NoRole,
const QStyleOption *  option = nullptr 
) const
virtual

获取一个加工后的画刷

base 画刷 flags DStyle中的风格状态. cg 调色板中的色组. role 调色板中颜色角色值. option 风格选项.

参见
DStyle::StateFlags
QPalette::ColorRole QPalette::ColorGroup QStyleOption
返回
加工后的画刷

◆ generatedBrush() [3/3]

QBrush Dtk::Widget::DStyle::generatedBrush ( DStyle::StyleState  state,
const QStyleOption *  option,
const QBrush &  base,
QPalette::ColorGroup  cg = QPalette::Normal,
QPalette::ColorRole  role = QPalette::NoRole 
) const

获取一个加工后的画刷

base 画刷. state DStyle中的风格状态. option 风格选项. cg 调色板中的色组. role 调色板中颜色角色值.

参见
DStyle::StyleState
QStyleOption
QPalette::ColorGroup QPalette::ColorRole
返回
加工后的画刷

◆ pixelMetric() [1/2]

int Dtk::Widget::DStyle::pixelMetric ( const QStyle *  style,
DStyle::PixelMetric  m,
const QStyleOption *  opt = nullptr,
const QWidget *  widget = nullptr 
)
static

返回特定的 style 风格下, m 像素标准的值.

像素标准 m 的值可以时 QStyle::PixelMetric 也可以是 DStyle::PixelMetric 。 某些m 值下, opt 参数和 widget 参数可以为空。

返回
返回 m 对应的像素标准。
参见
QStyle::pixelMetric()

◆ pixelMetric() [2/2]

int Dtk::Widget::DStyle::pixelMetric ( QStyle::PixelMetric  m,
const QStyleOption *  opt = nullptr,
const QWidget *  widget = nullptr 
) const
override

DStyle::pixelMetric

参见
QStyle::pixelMetric()

◆ setTooltipTextFormat()

void Dtk::Widget::DStyle::setTooltipTextFormat ( Qt::TextFormat  format)
static

设置 tooltip 的文本格式.

通过给定 format , 将 DStyle 内部中的 ToolTip 文本格式设置为 format 指定的样式。

参见
Qt::TextFormat

◆ sizeFromContents() [1/2]

QSize Dtk::Widget::DStyle::sizeFromContents ( const QStyle *  style,
DStyle::ContentsType  ct,
const QStyleOption *  opt,
const QSize contentsSize,
const QWidget *  widget = nullptr 
)
static

返回子内容区域的 ct 的大小.

参数 style 为指定的风格类型, ct 为子元素内容类型, opt 为风格选项,不同的控件风格选项不同。 contentsSize 提供的原始内容大小 widget 参数 为控件实例。

参见
QStyle::sizeFromContents()

◆ sizeFromContents() [2/2]

QSize Dtk::Widget::DStyle::sizeFromContents ( QStyle::ContentsType  ct,
const QStyleOption *  opt,
const QSize contentsSize,
const QWidget *  widget = nullptr 
) const
override

DStyle::sizeFromContents

参见
QStyle::sizeFromContents()

◆ standardIcon() [1/2]

QIcon Dtk::Widget::DStyle::standardIcon ( const QStyle *  style,
DStyle::StandardPixmap  st,
const QStyleOption *  opt = nullptr,
const QWidget *  widget = 0 
)
static

DStyle::standardIcon

style 风格实例 st 基本 Pixmap 对象枚举 opt 风格选项 widget 控件实例

参见
QStyle::standardIcon()

◆ standardIcon() [2/2]

QIcon Dtk::Widget::DStyle::standardIcon ( QStyle::StandardPixmap  st,
const QStyleOption *  opt = nullptr,
const QWidget *  widget = nullptr 
) const
override

DStyle::standardIcon

参见
QStyle::standardIcon()

◆ standardPalette()

QPalette Dtk::Widget::DStyle::standardPalette ( ) const
override

获取标准调色板

返回
调色板

◆ styleHint()

int Dtk::Widget::DStyle::styleHint ( StyleHint  sh,
const QStyleOption *  opt,
const QWidget *  w,
QStyleHintReturn *  shret 
) const
override

DStyle::styleHint

sh 风格策略枚举 opt 风格选项 w 控件实例 shret 传出参数.

参见
QStyle::styleHint()

◆ subElementRect() [1/2]

QRect Dtk::Widget::DStyle::subElementRect ( const QStyle *  style,
DStyle::SubElement  r,
const QStyleOption *  opt,
const QWidget *  widget = nullptr 
)
static

通过给定的 style 风格, opt 风格选项和 widget 控件,返回 指定的 r 子元素区域矩形。

返回
返回子元素 r 对应的屏幕坐标区域矩形。
参见
QStyle::subElementRect()

◆ subElementRect() [2/2]

QRect Dtk::Widget::DStyle::subElementRect ( QStyle::SubElement  r,
const QStyleOption *  opt,
const QWidget *  widget = nullptr 
) const
override

DStyle::subElementRect

参见
QStyle::subElementRect()

◆ toIconModeState()

QPair< QIcon::Mode, QIcon::State > Dtk::Widget::DStyle::toIconModeState ( const QStyleOption *  option)
static

根据给定选项值返回图标的模式和状态.

通过参数 option 中的 QIcon::State 属性和 QIcon::Mode 属性, 返回

返回
当前图标模式对应的状态值。

◆ tooltipTextFormat()

Qt::TextFormat Dtk::Widget::DStyle::tooltipTextFormat ( )
static

获取 tooltip 文本格式.

返回
返回 DStyle 内部使用的 ToolTip 文本格式。
参见
Qt::TextFormat

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