DtkWidget
DTK Widget module
|
用于裁剪窗口的绘制内容. 更多...
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,裁掉的部分将显示 下层控件内容,如果下层没有其它控件,将显示主窗口背景。
|
signal |
这个信号在 clipPath 改变时被发送
|
signal |
这个信号在 margins 改变时被发送
|
slot |
clipPath
|
slot |
margins
|
readwrite |
被裁剪的区域,控件真实裁剪区域 = clipPath & (boundingRect() - margins)