-
Notifications
You must be signed in to change notification settings - Fork 146
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
doc: update docs for denhancedwidget
更新denhancedwidget的文档,添加示例代码 Log: update docs Issue: linuxdeepin/dtk#94
- Loading branch information
1 parent
3a2f266
commit 8b4f50b
Showing
2 changed files
with
183 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
/*! | ||
@~chinese | ||
@file DEnhancedWidget.h | ||
@class Dtk::Widget::DEnhancedWidget | ||
@brief 对目标控件进行监听,并发射相应的信号 | ||
@details QWidget 中只有少量的信号用于通知和窗口相关的属性变化,常用的如 x y width height等属性 | ||
的改变只能通过继承重写对应的事件才能知晓。DEnhancedWidget 中通过使用事件过滤器监听目标控件的事件, | ||
收到对应事件之后转换为自身的信号发射出来,以此来实现对 QWidget 对象的信号扩展。 | ||
### 示例代码 | ||
#### main.cpp | ||
```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 *ew = new DEnhancedWidget(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); | ||
} | ||
``` | ||
|
||
@property Dtk::Widget::DEnhancedWidget::target | ||
@brief 要监听的目标控件,每一个 DEnhancedWidget 对象只能关联到一个 QWidget 对象。 | ||
当 target 改变后,所有的信号和旧的 target 都不再有任何关系。 | ||
@note 可读可写 | ||
|
||
@property Dtk::Widget::DEnhancedWidget::enabled | ||
@brief 值为 true 时过滤 target 控件的事件发送信号。否则卸载事件过滤器,控件属性改变时也不会发出信号。 | ||
@note 可读可写 | ||
|
||
@fn void DEnhancedWidget::xChanged(int x) | ||
@brief 这个信号在目标控件的 x 坐标改变后被发送 | ||
@param[in] x 改变的 x 轴坐标 | ||
|
||
@fn void DEnhancedWidget::yChanged(int y) | ||
@brief 这个信号在目标控件的 y 坐标改变后被发送 | ||
@param[in] y 改变的 y 轴坐标 | ||
|
||
@fn void DEnhancedWidget::positionChanged(const QPoint &point) | ||
@brief 这个信号在目标控件的坐标改变后被发送 | ||
@param[in] point 改变的位置坐标 | ||
|
||
@fn void DEnhancedWidget::widthChanged(int width) | ||
@brief 这个信号在目标控件的宽度改变后被发送 | ||
@param[in] width 改变的宽度大小 | ||
|
||
@fn void DEnhancedWidget::heightChanged(int height) | ||
@brief 这个信号在目标控件的高度改变后被发送 | ||
@param[in] height 改变的高度大小 | ||
|
||
@fn void DEnhancedWidget::sizeChanged(const QSize &size) | ||
@brief 这个信号在目标控件的大小改变后被发送 | ||
@param[in] size 改变的大小 | ||
|
||
@fn void DEnhancedWidget::targetChanged(QWidget *target) | ||
@brief 这个信号在属性 DEnhancedWidget::target 被改变后发送 | ||
@param[in] target 目标控件 | ||
|
||
@fn void DEnhancedWidget::enabledChanged(bool enabled) | ||
@brief 这个信号在属性 DEnhancedWidget::enabled 被改变后发送 | ||
@param[in] enabled 是否可用 | ||
|
||
@fn void DEnhancedWidget::showed() | ||
@brief 这个信号在目标控件显示后发送 | ||
|
||
@fn DEnhancedWidget::DEnhancedWidget(QWidget *w, QObject *parent): | ||
@brief DEnhancedWidget::DEnhancedWidget 构造函数 | ||
@param[in] w 初始时指定的 target 控件 | ||
@param[in] parent 父对象,直接传递给基类 | ||
@sa DEnhancedWidget::target | ||
@sa QObject::parent | ||
|
||
@fn void DEnhancedWidget::setTarget(QWidget *target) | ||
@brief 设置目标控件,并且在目标控件发生改变时更新事件过滤器 | ||
@param[in] target | ||
@sa DEnhancedWidget::target | ||
|
||
@fn void DEnhancedWidget::setEnabled(bool enabled) | ||
@brief 设置控件是否可用,并根据情况进行事件过滤器的安装或卸载 | ||
@param[in] enabled | ||
@sa DEnhancedWidget::enabled | ||
|
||
*/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters