QAbstractItemView——为所有的视图项提供了基础的功能

QAbstractItemView是Qt中一个抽象基类,为使用QAbstractItemModel的所有视图提供基础功能,如键盘鼠标导航、滚动、编辑和选择。它定义了一系列属性如CursorAction、DragDropMode等,以及关键函数,如scrollTo()和edit(),用于控制视图行为和交互。子类只需实现所需特定功能。视图项的显示和编辑可通过setItemDelegate()定制,并使用viewport()->update()更新视口内容。
摘要由CSDN通过智能技术生成

QAbstractItemView
描述:

QAbstractItemView 为所有的视图项提供了基础的功能。

QAbstractItemView是所有的使用QAbstractItemModel模型的视图的基类,是一个不能被实例化的抽象类。它通过信号槽机制为与模型的交互操作提供了一个标准化的接口,确保子类视图能够随着模型的变化而及时更新。该类对键盘和鼠标的导航、视窗的滚动、项的编辑以及选择提供了标准的支持。键盘导航实现了如下的功能:
在这里插入图片描述

(注意:上表是在假设selectionmode 允许操作的基础上的,比如说 如果selection mode是 QAbstractItemView::NoSelection的时候 上表就失效了。)

当视图项继承自QAbstractItemView时 只需要实现他们需要的特定的功能就行了。

To make sure that an item is visible usescrollTo().

QAbstractItemView 的一些函数关注于滚动上,比如setHorizontalScrollMode() 和 setVerticalScrollMode() ;另外一些函数关注与选择模式,比如说 setSelectionMode(), 和setSelectionBehavior()。

为了完全的控制项的显示和编辑,可以通过 setItemDelegate().函数设定一个委托。

注意:当一个继承自 QAbstractItemView的对象想要更新视口里的内容时 应该使用 viewport->update() 而不是update()函数 因为所有的绘制操作都发生在视口中。

属性:

enum QAbstractItemView::​CursorAction

该属性描述了不同项之间的导航方式。

在这里插入图片描述

enum QAbstractItemView::​DragDropMode

该属性包含了项能对dragEvent 和dropEvent做出的回应。默认情况下是不能回应(NoDragDrop)。

在这里插入图片描述

enum QAbstractItemView::​DropIndicatorPosition

该属性描述了放置指示器和当前鼠标位置的关系。
在这里插入图片描述

enum QAbstractItemView::​EditTrigger

该属性描述了什么action会启动项编辑
在这里插入图片描述

enum QAbstractItemView::​ScrollHint
在这里插入图片描述

enum QAbstractItemView::​ScrollMode
在这里插入图片描述

enum QAbstractItemView::​SelectionBehavior
在这里插入图片描述

enum QAbstractItemView::​SelectionMode在这里插入图片描述

enum QAbstractItemView::​State

该属性描述了项的不同的状态。

在这里插入图片描述

alternatingRowColors : bool

该属性描述了是否对背景应用交替的颜色。

如果该属性是true的话,就使用 QPalette::Base 和QPalette::Al

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `editTriggers` 是 `QAbstractItemView` 类的一个属性,用于设置表格、树形视图、列表视图等控件的编辑行为。如果将其设置为 `QAbstractItemView::NoEditTriggers`,则表示禁用所有的编辑行为,即用户无法编辑或者删除表格、树形视图、列表视图中的任何。 示例代码如下: ```cpp QTableView *tableView = new QTableView(); tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ``` 在上述示例中,我们创建了一个 `QTableView` 对象,并将其 `editTriggers` 属性设置为 `QAbstractItemView::NoEditTriggers`,这样就禁用了表格的所有编辑行为。 ### 回答2: 在Qt中,QAbstractItemView是一个抽象类,它提供了对模型-视图架构中的数据进行显示和编辑的功能。在QAbstractItemView中,我们可以使用editTriggers属性来设置视图的编辑触发器。 当我们将editTriggers设置为QAbstractItemView::NoEditTriggers时,意味着禁用了对视图中的目进行编辑的功能。也就是说,用户将无法通过双击或其他方式进行编辑。 这种设置通常用于只希望显示数据而不允许用户进行编辑的情况。比如,在展示一个展示产品列表的表格中,我们可能希望用户只能查看产品的信息,而不能进行修改。这时,我们可以将editTriggers设置为QAbstractItemView::NoEditTriggers来禁止用户编辑表格中的任何目。 要设置editTriggers,我们可以使用QAbstractItemView的setEditTriggers函数。以下是一个例子: ```cpp QTableView *tableView = new QTableView(); QStandardItemModel *model = new QStandardItemModel(this); // 添加数据到model中... tableView->setModel(model); tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ``` 在上述例子中,我们创建了一个QTableView,并使用了一个QStandardItemModel作为数据模型。然后,我们将editTriggers设置为QAbstractItemView::NoEditTriggers,这样用户将无法编辑表格中的任何目。 总之,通过将editTriggers设置为QAbstractItemView::NoEditTriggers,我们可以禁用Qt视图中的目编辑功能,使其只能用于查看数据而不能进行修改。 ### 回答3: QAbstractItemViewQt中用于显示和编辑表格数据的类,它的子类可以根据需要进行自定义。其中,editTriggers是QAbstractItemView的一个属性,用于设置表格的编辑触发条件。 当将editTriggers设置为QAbstractItemView::NoEditTriggers时,意味着禁用了所有的编辑触发条件。也就是说,用户无法通过双击或按下F2键等方式直接编辑表格中的数据。 这种设置适用于那些不需要用户编辑表格数据的情况,例如只需要展示数据,而不需要用户进行任何修改的场景。通过禁用所有的编辑触发条件,可以提高程序的安全性和稳定性,避免用户不小心修改了数据。 当然,在需要用户编辑数据的情况下,我们可以根据具体需求选择合适的编辑触发条件,例如通过设置editTriggers为QAbstractItemView::DoubleClicked,表示用户双击单元格时即可触发编辑,或者设置为QAbstractItemView::AnyKeyPressed,表示用户按下任意键即可编辑等。这样就可以根据实际需求来实现自定义的表格编辑功能。 总之,将editTriggers设置为QAbstractItemView::NoEditTriggers相当于禁用了所有的编辑触发条件,适用于只展示数据而不需要用户编辑的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值