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

对目标控件进行监听,并发射相应的信号 更多...

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

Public 槽

void setTarget (QWidget *target)
 设置目标控件,并且在目标控件发生改变时更新事件过滤器
 
void setEnabled (bool enabled)
 设置控件是否可用,并根据情况进行事件过滤器的安装或卸载
 

信号

void xChanged (int x)
 这个信号在目标控件的 x 坐标改变后被发送
 
void yChanged (int y)
 这个信号在目标控件的 y 坐标改变后被发送
 
void positionChanged (const QPoint &point)
 这个信号在目标控件的坐标改变后被发送
 
void widthChanged (int width)
 这个信号在目标控件的宽度改变后被发送
 
void heightChanged (int height)
 这个信号在目标控件的高度改变后被发送
 
void sizeChanged (const QSize &size)
 这个信号在目标控件的大小改变后被发送
 
void targetChanged (QWidget *target)
 这个信号在属性 DEnhancedWidget::target 被改变后发送
 
void enabledChanged (bool enabled)
 这个信号在属性 DEnhancedWidget::enabled 被改变后发送
 
void showed ()
 这个信号在目标控件显示后发送
 

Public 成员函数

 DEnhancedWidget (QWidget *target, QObject *parent=0)
 
QWidget * target () const
 
bool enabled () const
 

Protected 成员函数

bool eventFilter (QObject *o, QEvent *e) Q_DECL_OVERRIDE
 

属性

QWidget * target
 要监听的目标控件,每一个 DEnhancedWidget 对象只能关联到一个 QWidget 对象。 当 target 改变后,所有的信号和旧的 target 都不再有任何关系。
 
bool enabled
 值为 true 时过滤 target 控件的事件发送信号。否则卸载事件过滤器,控件属性改变时也不会发出信号。
 

详细描述

对目标控件进行监听,并发射相应的信号

QWidget 中只有少量的信号用于通知和窗口相关的属性变化,常用的如 x y width height等属性 的改变只能通过继承重写对应的事件才能知晓。DEnhancedWidget 中通过使用事件过滤器监听目标控件的事件, 收到对应事件之后转换为自身的信号发射出来,以此来实现对 QWidget 对象的信号扩展。

示例代码

main.cpp

#include <DApplication>
#include <DMainWindow>
#include <DWidget>
#include "denhancedwidget.h"
DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
DApplication app(argc, argv);
// 创建第一个基本的 DWidget 控件 w1
DWidget *w1 = new DWidget;
w1->show();
// 创建第二个基本的 DWidget 控件 w2
DWidget *w2 = new DWidget();
w2->show();
// 创建一个 DEnhancedWidget 的实例 ew ,并将 w1 作为其父控件
// 连接 DEnhancedWidget 的 xChanged 信号到一个 lambda 表达式槽函数,用于输出 x 的值
DWidget::connect(ew, &DEnhancedWidget::xChanged, [] (int x) {qDebug() << x;});
// 设置 DEnhancedWidget 的目标控件为 w2
ew->setTarget(w2);
// 移动 w1 控件,并不会有输出
w1->move(100, 0);
// 移动 w2 控件,有输出
w2->move(200, 0);
w2->move(300, 0);
w2->move(400, 0);
}
DApplication 是 DTK 中用于替换 QCoreApplication 相关功能实现的类.
Definition dapplication.h:33
对目标控件进行监听,并发射相应的信号
Definition denhancedwidget.h:16
void xChanged(int x)
这个信号在目标控件的 x 坐标改变后被发送
void setTarget(QWidget *target)
设置目标控件,并且在目标控件发生改变时更新事件过滤器
Definition denhancedwidget.cpp:186

成员函数说明

◆ enabledChanged

void DEnhancedWidget::enabledChanged ( bool  enabled)
signal

这个信号在属性 DEnhancedWidget::enabled 被改变后发送

参数
[in]enabled是否可用

◆ heightChanged

void DEnhancedWidget::heightChanged ( int  height)
signal

这个信号在目标控件的高度改变后被发送

参数
[in]height改变的高度大小

◆ positionChanged

void DEnhancedWidget::positionChanged ( const QPoint &  point)
signal

这个信号在目标控件的坐标改变后被发送

参数
[in]point改变的位置坐标

◆ setEnabled

void DEnhancedWidget::setEnabled ( bool  enabled)
slot

设置控件是否可用,并根据情况进行事件过滤器的安装或卸载

参数
[in]enabled
参见
DEnhancedWidget::enabled

◆ setTarget

void DEnhancedWidget::setTarget ( QWidget *  target)
slot

设置目标控件,并且在目标控件发生改变时更新事件过滤器

参数
[in]target
参见
DEnhancedWidget::target

◆ sizeChanged

void DEnhancedWidget::sizeChanged ( const QSize &  size)
signal

这个信号在目标控件的大小改变后被发送

参数
[in]size改变的大小

◆ targetChanged

void DEnhancedWidget::targetChanged ( QWidget *  target)
signal

这个信号在属性 DEnhancedWidget::target 被改变后发送

参数
[in]target目标控件

◆ widthChanged

void DEnhancedWidget::widthChanged ( int  width)
signal

这个信号在目标控件的宽度改变后被发送

参数
[in]width改变的宽度大小

◆ xChanged

void DEnhancedWidget::xChanged ( int  x)
signal

这个信号在目标控件的 x 坐标改变后被发送

参数
[in]x改变的 x 轴坐标

◆ yChanged

void DEnhancedWidget::yChanged ( int  y)
signal

这个信号在目标控件的 y 坐标改变后被发送

参数
[in]y改变的 y 轴坐标

属性说明

◆ enabled

Dtk::Widget::DEnhancedWidget::enabled
readwrite

值为 true 时过滤 target 控件的事件发送信号。否则卸载事件过滤器,控件属性改变时也不会发出信号。

注解
可读可写

◆ target

Dtk::Widget::DEnhancedWidget::target
readwrite

要监听的目标控件,每一个 DEnhancedWidget 对象只能关联到一个 QWidget 对象。 当 target 改变后,所有的信号和旧的 target 都不再有任何关系。

注解
可读可写

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