一个可定制切换动画的容器控件.
更多...
|
| DStackWidget (QWidget *parent=0) |
| 构造一个 DStackWidget 实例 parent 为 DStackWidget 实例的父控件
|
|
bool | busy () const |
|
int | depth () const |
|
int | currentIndex () const |
|
QWidget * | currentWidget () const |
|
DAbstractStackWidgetTransition * | transition () const |
|
int | animationDuration () const |
|
QEasingCurve::Type | animationType () const |
|
|
| DStackWidget (DStackWidgetPrivate &dd, QWidget *parent=0) |
|
void | setCurrentIndex (int currentIndex, DAbstractStackWidgetTransition::TransitionType type=DAbstractStackWidgetTransition::Push, bool enableTransition=true) |
|
void | setCurrentWidget (QWidget *currentWidget, DAbstractStackWidgetTransition::TransitionType type=DAbstractStackWidgetTransition::Push, bool enableTransition=true) |
|
一个可定制切换动画的容器控件.
\inmodule dtkwidget
DStackWidget 在内容展示方面类似于一个使用了 QStackedLayout 布局的控件, 即在同一个位置展示不同的内容, 但 DStackWidget 提供了 切换内容时的动画效果, 并且可进行自定义动画, 另外 DStackWidget 采用了栈的先入后出理念(不过也并没有完全遵守), 使用 DStackWidget::pushWidget 方法入栈新的内容, 使用 DStackWidget::popWidget 出栈当前内容并显示下层内容(如果有的话), 还有 DStackWidget::insertWidget 可以指定插入的位置.
如果要自定义动画则需要继承 DAbstractStackWidgetTransition, 具体实现可参考 DSlideStackWidgetTransition 类, DSlideStackWidgetTransition 类是 DStackWidget 使用的默认动画即滑动.
◆ busyChanged
void Dtk::Widget::DStackWidget::busyChanged |
( |
bool |
busy | ) |
|
|
signal |
◆ currentIndexChanged
void Dtk::Widget::DStackWidget::currentIndexChanged |
( |
int |
currentIndex | ) |
|
|
signal |
◆ currentWidgetChanged
Dtk::Widget::DStackWidget::currentWidgetChanged |
( |
QWidget * |
currentWidget | ) |
|
|
signal |
◆ depthChanged
void Dtk::Widget::DStackWidget::depthChanged |
( |
int |
depth | ) |
|
|
signal |
◆ getWidgetByIndex
QWidget * Dtk::Widget::DStackWidget::getWidgetByIndex |
( |
int |
index | ) |
const |
|
slot |
通过索引获取控件.
index 指定索引
- 返回
- 通过索引找到的控件
◆ indexOf
int Dtk::Widget::DStackWidget::indexOf |
( |
QWidget * |
widget | ) |
const |
|
slot |
获取指定控件的索引.
widget 指定的控件
- 返回
- 通过控件找到的索引
◆ insertWidget
void Dtk::Widget::DStackWidget::insertWidget |
( |
int |
index, |
|
|
QWidget * |
widget, |
|
|
bool |
enableTransition = true |
|
) |
| |
|
slot |
在指定的位置插入一个新的内容控件.
需要注意的是如果第一个参数 index 不是栈的最后一个位置将不会显示动画
index 要插入的索引 widget 要插入的控件 enableTransition 是否使用动画
- 参见
- DStackWidget::pushWidget
◆ popWidget
void Dtk::Widget::DStackWidget::popWidget |
( |
QWidget * |
widget = nullptr , |
|
|
bool |
isDelete = true , |
|
|
int |
count = 1 , |
|
|
bool |
enableTransition = true |
|
) |
| |
|
slot |
出栈指定的内容控件.
If widget is nullptr, all widgets up to the currentIndex+count widgets will be popped. If not specified, all widgets up to the depthOf(widget)+count widgets will be popped.
如果所有参数都没有指定, 那么将只移除当前的内容控件, 一般是栈顶的控件. 如果指定了参数 widget 那么计数将从控件 widget 在栈中的索引开始往栈顶方向计算移除 count 个内容控件
widget 指定要移除的控件 isDelete 是否删除控件对象 count 指定要移除的控件的数量 enableTransition 是否使用动画
◆ pushWidget
int Dtk::Widget::DStackWidget::pushWidget |
( |
QWidget * |
widget, |
|
|
bool |
enableTransition = true |
|
) |
| |
|
slot |
◆ setAnimationDuration
void Dtk::Widget::DStackWidget::setAnimationDuration |
( |
int |
animationDuration | ) |
|
|
slot |
◆ setAnimationType
void Dtk::Widget::DStackWidget::setAnimationType |
( |
QEasingCurve::Type |
animationType | ) |
|
|
slot |
◆ setTransition
◆ animationDuration
Dtk::Widget::DStackWidget::animationDuration |
|
readwrite |
◆ animationType
Dtk::Widget::DStackWidget::animationType |
|
readwrite |
◆ busy
Dtk::Widget::DStackWidget::busy |
|
read |
◆ currentIndex
Dtk::Widget::DStackWidget::currentIndex |
|
read |
◆ currentWidget
Dtk::Widget::DStackWidget::currentWidget |
|
read |
◆ depth
Dtk::Widget::DStackWidget::depth |
|
read |
◆ transition
Dtk::Widget::DStackWidget::transition |
|
readwrite |
该类的文档由以下文件生成: