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

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

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

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
 

Protected 成员函数

bool eventFilter (QObject *watched, QEvent *event) Q_DECL_OVERRIDE
 
void paintEvent (QPaintEvent *event) Q_DECL_OVERRIDE
 
void resizeEvent (QResizeEvent *event) Q_DECL_OVERRIDE
 
void showEvent (QShowEvent *event) Q_DECL_OVERRIDE
 
void hideEvent (QHideEvent *event) Q_DECL_OVERRIDE
 

属性

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,裁掉的部分将显示 下层控件内容,如果下层没有其它控件,将显示主窗口背景。

此控件不接收任何输入事件,且不接受焦点

参见
Qt::WA_TransparentForMouseEvents Qt::NoFocus
DGraphicsClipEffect

构造及析构函数说明

◆ DClipEffectWidget()

Dtk::Widget::DClipEffectWidget::DClipEffectWidget ( QWidget *  parent)
explicit

构造 DClipEffectWidget 对象,和普通 QWidget 一样,可以传入一个 QWidget 对象 指针作为其父对象 parent 父对象

警告
必须要传入一个有效的父对象,将此控件作为顶级窗口没有任何意义

成员函数说明

◆ clipPathChanged

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

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

◆ marginsChanged

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

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

◆ setClipPath

void Dtk::Widget::DClipEffectWidget::setClipPath ( const QPainterPath &  path)
slot

path

◆ setMargins

void Dtk::Widget::DClipEffectWidget::setMargins ( QMargins  margins)
slot

margins

属性说明

◆ clipPath

Dtk::Widget::DClipEffectWidget::clipPath
readwrite

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

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

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