DtkWidget 5.6.0.2
DTK Widget module
Public 槽 | 信号 | Public 成员函数 | Protected 成员函数 | 属性 | 所有成员列表
Dtk::Widget::DListView类 参考

一个用于展示一列数据的控件. 更多...

类 Dtk::Widget::DListView 继承关系图:
Inheritance graph
[图例]
Dtk::Widget::DListView 的协作图:
Collaboration graph
[图例]

Public 槽

bool addItem (const QVariant &data)
 在列表底部新增一个item data 要新增的数据 更多...
 
bool addItems (const QVariantList &datas)
 一次性在列表底部新增多个item datas 要新增的数据组成的列表 更多...
 
bool insertItem (int index, const QVariant &data)
 在指定行处新增一个item index 要增加item的行号 data 要增加的item的数据 更多...
 
bool insertItems (int index, const QVariantList &datas)
 在指定行处新增多个item index 要增加item的行号 datas 要增加的items的数据组成的列表 更多...
 
bool removeItem (int index)
 移除指定位置的item index 要移除的item的行号 更多...
 
bool removeItems (int index, int count)
 一次移除多个item index 开始移除item的行号 count 移除从 index 指定的行号开始,移除 count 个item 更多...
 
int addHeaderWidget (QWidget *widget)
 此函数用于添加顶部小控件. 更多...
 
void removeHeaderWidget (int index)
 此函数用于移除头部控件小控件. 更多...
 
QWidget * takeHeaderWidget (int index)
 此函数用于移除头部小控件并返回该控件. 更多...
 
int addFooterWidget (QWidget *widget)
 此函数用于添加底层页脚小控件. 更多...
 
void removeFooterWidget (int index)
 此函数用于移除底层页脚控件. 更多...
 
QWidget * takeFooterWidget (int index)
 移除底层页脚控件并返回该控件. 更多...
 
void setOrientation (QListView::Flow flow, bool wrapping)
 此函数用于设置 DListView 的方向. 更多...
 
void edit (const QModelIndex &index)
 开始编辑一个item. 更多...
 
void setBackgroundType (DStyledItemDelegate::BackgroundType backgroundType)
 设定item的背景色类型. 更多...
 
void setItemMargins (const QMargins &itemMargins)
 设定item的内容margin. 更多...
 
void setItemSize (QSize itemSize)
 设定item的尺寸. 更多...
 
void setItemSpacing (int spacing)
 设定item的间距大小. 更多...
 
void setItemRadius (int radius)
 设定item的圆角大小. 更多...
 

信号

void rowCountChanged ()
 
void orientationChanged (Qt::Orientation orientation)
 
void currentChanged (const QModelIndex &previous)
 这个信号当当前item发生改变时被调用 更多...
 
void triggerEdit (const QModelIndex &index)
 这个信号当有新的item被编辑时被调用 更多...
 

Public 成员函数

 DListView (QWidget *parent=0)
 获取一个 DListView 实例 parent 被用来作为 DListView 实例的父控件
 
State state () const
 获取控件当前的状态 更多...
 
QWidget * getHeaderWidget (int index) const
 获取一个顶部控件 更多...
 
QWidget * getFooterWidget (int index) const
 获取一个底部控件 index 指定要获取的底部控件的索引 更多...
 
bool isActiveRect (const QRect &rect) const
 return true if rect intersects contentsVisualRect+qMax(cacheBuffer,cacheCount) 更多...
 
bool isVisualRect (const QRect &rect) const
 DListView::isVisualRect 相同 更多...
 
int count () const
 
Qt::Orientation orientation () const
 
void setModel (QAbstractItemModel *model) Q_DECL_OVERRIDE
 设置 DListView 要使用的模型 更多...
 
QSize minimumSizeHint () const Q_DECL_OVERRIDE
 
DStyledItemDelegate::BackgroundType backgroundType () const
 
QMargins itemMargins () const
 
QSize itemSize () const
 

Protected 成员函数

void setViewportMargins (int left, int top, int right, int bottom)
 
void setViewportMargins (const QMargins &margins)
 
QMargins viewportMargins () const
 
void resizeEvent (QResizeEvent *event) Q_DECL_OVERRIDE
 
void currentChanged (const QModelIndex &current, const QModelIndex &previous) Q_DECL_OVERRIDE
 
bool edit (const QModelIndex &index, EditTrigger trigger, QEvent *event) Q_DECL_OVERRIDE
 
QStyleOptionViewItem viewOptions () const override
 
virtual QModelIndex moveCursor (CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
 
QSize viewportSizeHint () const override
 
int horizontalOffset () const override
 

属性

int count
 item count. 更多...
 
Qt::Orientation orientation
 list layout orientation 更多...
 
DStyledItemDelegate::BackgroundType backgroundType
 
QMargins itemMargins
 
QSize itemSize
 

详细描述

一个用于展示一列数据的控件.

\inmodule dtkwidget

DListView 类似与 QListView 属于 Qt's model/view framework 的一个类,常被用来展示一列数据,当数据较多时可以滚动控件以显示跟多内容。 但与 QListView 也有不同之处,DListView 提供了顶部控件和底部控件,它们始终显示在listview中,不会因为滚动而不可见,另外还提供了方便编辑 数据的方法,如:addItem , addItems , insertItem , takeItem , removeItem , 以及一些开发中常用的信号。

成员函数说明

◆ addFooterWidget

int Dtk::Widget::DListView::addFooterWidget ( QWidget *  widget)
slot

此函数用于添加底层页脚小控件.

widget 底层页脚控件实例.

返回
成功添加返回对应的索引值,如果已存在,则返回 对应的索引值。
参见
DListView::getFooterWidget

◆ addHeaderWidget

int Dtk::Widget::DListView::addHeaderWidget ( QWidget *  widget)
slot

此函数用于添加顶部小控件.

DListView::getHeaderWidget 类似,但返回要移除的顶部控件的对象. widget 头部控件实例.

返回
成功添加返回添加进 DListView 的索引值,已存在返回对应控件 的索引值.
参见
DListView::getHeaderWidget

◆ addItem

bool Dtk::Widget::DListView::addItem ( const QVariant data)
slot

在列表底部新增一个item data 要新增的数据

返回
返回是否新增成功

◆ addItems

bool Dtk::Widget::DListView::addItems ( const QVariantList &  datas)
slot

一次性在列表底部新增多个item datas 要新增的数据组成的列表

返回
是否新增成功

◆ currentChanged

void Dtk::Widget::DListView::currentChanged ( const QModelIndex previous)
signal

这个信号当当前item发生改变时被调用

listview会有一个始终表示当前item索引的 QModelIndex 对象, 当这个 QModelIndex 对象表示的位置发生改变时这个信号才会被调用,而不是当前item的内容发生改变时。 当鼠标单机某一个item或者使用键盘切换item时,

previous 为之前的item的索引对象

参见
QModelIndex QListView::currentChanged

◆ edit

void Dtk::Widget::DListView::edit ( const QModelIndex index)
slot

开始编辑一个item.

index 指定要编辑的item的位置

◆ getFooterWidget()

QWidget * Dtk::Widget::DListView::getFooterWidget ( int  index) const

获取一个底部控件 index 指定要获取的底部控件的索引

返回
返回在指定索引处的底部控件对象
参见
DListView::getHeaderWidget

◆ getHeaderWidget()

QWidget * Dtk::Widget::DListView::getHeaderWidget ( int  index) const

获取一个顶部控件

顶部控件与item一样都会在listview中被显示出来,而且顶部控件会始终在所有item之上, 也就是说顶部控件与item不同的地方在于顶部控件始终显示在布局中,而不会因为鼠标滚动不可见。 另外顶部控件可以有多个,它们的布局方式(方向)与item的布局方向相同

index 指定要获取的顶部控件的索引

返回
返回在指定索引处的顶部控件对象
注解
注意顶部控件并不是像 GridLayout 的表头,表头是始终在水平方向上布局的
参见
DListView::getFooterWidget DListView::addHeaderWidget DListView::removeHeaderWidget DListView::takeHeaderWidget

◆ insertItem

bool Dtk::Widget::DListView::insertItem ( int  index,
const QVariant data 
)
slot

在指定行处新增一个item index 要增加item的行号 data 要增加的item的数据

返回
是否新增成功

◆ insertItems

bool Dtk::Widget::DListView::insertItems ( int  index,
const QVariantList &  datas 
)
slot

在指定行处新增多个item index 要增加item的行号 datas 要增加的items的数据组成的列表

返回
是否新增成功

◆ isActiveRect()

bool Dtk::Widget::DListView::isActiveRect ( const QRect rect) const

return true if rect intersects contentsVisualRect+qMax(cacheBuffer,cacheCount)

判断给定的 QRect 是否与 listview 的item可显示区域有重叠

listview 的item可显示区域即为 listview 的 viewport , items只能在 viewport 显示,超出这一区域的 item 将不可见。

rect 要对比的 QRect

返回
返回两个矩形是否有重叠区域
参见
DListView::isVisualRect

◆ isVisualRect()

bool Dtk::Widget::DListView::isVisualRect ( const QRect rect) const

DListView::isVisualRect 相同

rect 用于判断的位置矩形.

返回
成功包含矩形返回 true,否则返回 false.
参见
DListView::isVisualRect

◆ orientationChanged

void Dtk::Widget::DListView::orientationChanged ( Qt::Orientation  orientation)
signal

orientation 改变的方向值.

参见
DListView::orientation

◆ removeFooterWidget

void Dtk::Widget::DListView::removeFooterWidget ( int  index)
slot

此函数用于移除底层页脚控件.

index 添加进 DListView 中底层页脚控件 的索引值,是 DListView::addFooterWidget 的返回值.

参见
DListView::addFooterWidget

◆ removeHeaderWidget

void Dtk::Widget::DListView::removeHeaderWidget ( int  index)
slot

此函数用于移除头部控件小控件.

index 添加进 DListView 中头部小控件 的索引值,是 DListView::addHeaderWidget 的返回值.

参见
DListView::addFooterWidget

◆ removeItem

bool Dtk::Widget::DListView::removeItem ( int  index)
slot

移除指定位置的item index 要移除的item的行号

返回
是否移除成功

◆ removeItems

bool Dtk::Widget::DListView::removeItems ( int  index,
int  count 
)
slot

一次移除多个item index 开始移除item的行号 count 移除从 index 指定的行号开始,移除 count 个item

返回
返回是否移除成功

◆ rowCountChanged

void Dtk::Widget::DListView::rowCountChanged ( )
signal

◆ setBackgroundType

void Dtk::Widget::DListView::setBackgroundType ( DStyledItemDelegate::BackgroundType  backgroundType)
slot

设定item的背景色类型.

backgroundType 背景色类型

◆ setItemMargins

void Dtk::Widget::DListView::setItemMargins ( const QMargins itemMargins)
slot

设定item的内容margin.

itemMargins margin值

◆ setItemRadius

void Dtk::Widget::DListView::setItemRadius ( int  radius)
slot

设定item的圆角大小.

radius 圆角大小值

◆ setItemSize

void Dtk::Widget::DListView::setItemSize ( QSize  itemSize)
slot

设定item的尺寸.

itemSize 尺寸的大小

◆ setItemSpacing

void Dtk::Widget::DListView::setItemSpacing ( int  spacing)
slot

设定item的间距大小.

spacing 间距大小值

◆ setModel()

void Dtk::Widget::DListView::setModel ( QAbstractItemModel model)

设置 DListView 要使用的模型

模型用来为 listview 提供数据,以实现数据层与界面层分离的结构, 详细请查阅 Qt's model/view framework

model 模型对象

参见
QListView::setModel

◆ setOrientation

void Dtk::Widget::DListView::setOrientation ( QListView::Flow  flow,
bool  wrapping 
)
slot

此函数用于设置 DListView 的方向.

flowDListView 的方向,有 QListView::Flow::LeftToRight 和 QListView::Flow::TopToBottom 两个值。

wrapping 用于控制项布局是否自动换行,true 表示自动换行,false 表示非自动换行。

参见
DListView::orientation

◆ state()

QAbstractItemView::State Dtk::Widget::DListView::state ( ) const

获取控件当前的状态

控件可以有正在被拖拽,正在被编辑,正在播放动画等状态,详细可以查阅:QAbstractItemView::State

返回
控件当前的状态
参见
QAbstractItemView::State

◆ takeFooterWidget

QWidget * Dtk::Widget::DListView::takeFooterWidget ( int  index)
slot

移除底层页脚控件并返回该控件.

index 添加进 DListView 中底层页脚控件 的索引值,是 DListView::addFooterWidget 的返回值.

参见
DListView::getFooterWidget DListView::takeHeaderWidget

◆ takeHeaderWidget

QWidget * Dtk::Widget::DListView::takeHeaderWidget ( int  index)
slot

此函数用于移除头部小控件并返回该控件.

DListView::getHeaderWidget 类似,但返回要移除的顶部控件的对象

index 添加进 DListView 中头部小控件 的索引值,是 DListView::addHeaderWidget 的返回值.

返回
成功移除返回获取到的头部小控件,否则返回 nullptr .
参见
DListView::getHeaderWidget

◆ triggerEdit

void Dtk::Widget::DListView::triggerEdit ( const QModelIndex index)
signal

这个信号当有新的item被编辑时被调用

index 为正在编辑的item的索引对象

参见
QModelIndex QAbstractItemView::EditTrigger

属性说明

◆ count

Dtk::Widget::DListView::count
read

item count.

这个属性保存共有多少行数据

Getter: DListView::count , Signal: DListView::rowCountChanged

◆ orientation

Dtk::Widget::DListView::orientation
read

list layout orientation

这个属性保存listview中item的布局方式

Getter: DListView::orientation , Setter: DListView::setOrientation , Signal: DListView::orientationChanged

参见
Qt::Orientation

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