DtkWidget
DTK Widget module
载入中...
搜索中...
未找到
Dtk::Widget::DGraphicsClipEffect类 参考

用于裁剪窗口的绘制内容. 更多...

类 Dtk::Widget::DGraphicsClipEffect 继承关系图:

Public 槽

void setMargins (const QMargins &margins)
 
void setClipPath (const QPainterPath &clipPath)
 

信号

void marginsChanged (QMargins margins)
 
void clipPathChanged (QPainterPath clipPath)
 

Public 成员函数

 DGraphicsClipEffect (QObject *parent=Q_NULLPTR)
 构造 DGraphicsClipEffect 对象,和普通 QObject 一样,可以传入一个 QObject 对象 指针作为其父对象 parent 父对象
 
QMargins margins () const
 
QPainterPath clipPath () const
 

Protected 成员函数

void draw (QPainter *painter) Q_DECL_OVERRIDE
 

属性

QMargins margins
 用于调整目标控件的被裁剪区域,可以和 clipPath 组合更加灵活的裁剪控件
 
QPainterPath clipPath
 被裁剪的区域,控件真实裁剪区域 = clipPath & (boundingRect() - margins)
 

详细描述

用于裁剪窗口的绘制内容.

\inmodule dtkwidget

支持使用 QPainterPath 设置一个区域,位于区域外的窗口内容将被裁剪,可以通过设置 margins 控制有效的裁剪区域。如下图所示: \raw HTML

┏━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━┓
┃              │              ┃
┃              │              ┃
┃     A        m              ┃
┃              │              ┃
┃              │              ┃
┃       ┏┅┅┅┅┅┅┷┅┅┅┅┅┅┓       ┃
┃       ┋B ╭───────╮  ┋       ┃
┃       ┋  │       │  ┋       ┃
┃── m ──┋  │   C   │  ┋── m ──┃
┃       ┋  │       │  ┋       ┃
┃       ┋  ╰───────╯  ┋       ┃
┃       ┗┅┅┅┅┅┅┯┅┅┅┅┅┅┛       ┃
┃              │              ┃
┃              │              ┃
┃              m              ┃
┃              │              ┃
┃              │              ┃
┗━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┛

\endraw A为被作用的控件区域,B为有效的被裁剪区域,C 为 clipPath 区域,m为 margins ,则被裁剪掉的区域为: B - C,裁掉的部分将显示 下层控件内容,如果下层没有其它控件,将显示主窗口背景。

警告
以这种方式实现对 QWidget 的剪切在性能上会有较大的影响,一般情况下,我们推荐使用 DClipEffectWidget
参见
DClipEffectWidget QWidget::setGraphicsEffect

成员函数说明

◆ clipPathChanged

void Dtk::Widget::DGraphicsClipEffect::clipPathChanged ( QPainterPath  clipPath)
signal

这个信号在 clipPath 改变时被发送

◆ marginsChanged

void Dtk::Widget::DGraphicsClipEffect::marginsChanged ( QMargins  margins)
signal

这个信号在 margins 改变时被发送

◆ setClipPath

void Dtk::Widget::DGraphicsClipEffect::setClipPath ( const QPainterPath &  clipPath)
slot

clipPath

◆ setMargins

void Dtk::Widget::DGraphicsClipEffect::setMargins ( const QMargins &  margins)
slot

margins

属性说明

◆ clipPath

Dtk::Widget::DGraphicsClipEffect::clipPath
readwrite

被裁剪的区域,控件真实裁剪区域 = clipPath & (boundingRect() - margins)

警告
clipPath 必须是一个封闭的环状路径
参见
QPainterPath::closeSubpath

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