DtkWidget
DTK Widget module
|
用于裁剪窗口的绘制内容. 更多...
Public 槽 | |
void | setMargins (QMargins margins) |
void | setClipPath (const QPainterPath &path) |
信号 | |
void | marginsChanged (QMargins margins) |
void | clipPathChanged (QPainterPath clipPath) |
Public 成员函数 | |
DClipEffectWidget (QWidget *parent) | |
构造 DClipEffectWidget 对象,和普通 QWidget 一样,可以传入一个 QWidget 对象 指针作为其父对象 parent 父对象 | |
QMargins | margins () const |
QPainterPath | clipPath () const |
属性 | |
QMargins | margins |
用于调整控件的被裁剪区域,可以和 clipPath 组合更加灵活的裁剪控件 | |
QPainterPath | clipPath |
被裁剪的区域,控件真实裁剪区域 = clipPath & (rect() - margins) | |
用于裁剪窗口的绘制内容.
\inmodule dtkwidget
支持使用 QPainterPath 设置一个区域,位于区域外的窗口内容将被裁剪。被裁剪的对象 是此控件的父控件, 且 DClipEffectWidget 会自动填充整个父控件,另外可以通过设置 margins 控制有效的裁剪区域。如下图所示: \raw HTML
┏━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━┓ ┃ │ ┃ ┃ │ ┃ ┃ A m ┃ ┃ │ ┃ ┃ │ ┃ ┃ ┏┅┅┅┅┅┅┷┅┅┅┅┅┅┓ ┃ ┃ ┋B ╭───────╮ ┋ ┃ ┃ ┋ │ │ ┋ ┃ ┃── m ──┋ │ C │ ┋── m ──┃ ┃ ┋ │ │ ┋ ┃ ┃ ┋ ╰───────╯ ┋ ┃ ┃ ┗┅┅┅┅┅┅┯┅┅┅┅┅┅┛ ┃ ┃ │ ┃ ┃ │ ┃ ┃ m ┃ ┃ │ ┃ ┃ │ ┃ ┗━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┛
\endraw A为父控件区域, DClipEffectWidget 控件区域和父控件相同,B为有效的被裁剪区域,C 为 clipPath 区域,m为 margins ,则被裁剪掉的区域为: B - C,裁掉的部分将显示 下层控件内容,如果下层没有其它控件,将显示主窗口背景。
此控件不接收任何输入事件,且不接受焦点
|
explicit |
构造 DClipEffectWidget 对象,和普通 QWidget 一样,可以传入一个 QWidget 对象 指针作为其父对象 parent 父对象
|
signal |
这个信号在 clipPath 改变时被发送
|
signal |
这个信号在 margins 改变时被发送
|
slot |
path
|
slot |
margins
|
readwrite |
被裁剪的区域,控件真实裁剪区域 = clipPath & (rect() - margins)