Qt模型视图结构遇见的小问题

在本文的最开始,我们来看两个帮助文档内容:

 

selectionMode : SelectionMode

This property holds which selection mode the view operates in

Access functions:

 

QAbstractItemView::SelectionMode

selectionMode() const

void

setSelectionMode(QAbstractItemView::SelectionMode mode)

 

这是我想说的第一个帮助文档,这个SelectionMode关键词定义了在该视图下的模式,有五种模式,大家可以调用链接,点击SelectionMode关键词来查看帮助文档里的枚举,这里我就不再介绍这五类模式。

主要的两个功能见表格所展示的,在下文程序示例主要运用第二个函数,来设置Qtreeview对象的属性,为多选方式。

 

下述是第二个帮助文档:

void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)

Sets the current selection model to the given selectionModel.

这也是View对象的一种模式设定方式,不过这里设定的是将给定的已经设定完毕的选择模式,赋给此处未设定的变量,函数表示就是帮助文档第一句。

 

大家对比上述帮助文档,可以发现,无论是函数参数,还是函数实现功能都不相同,在我自己的编程学习中,这里将这两个函数弄混了,花费了好久,才找到错误,最后运行调试成功,大家要学会看帮助文档呀,各位加油呐,部分程序附在下面,给各位参考呐。

 

    QDirModel model;//文件系统存储模型
    QTreeView tree;//树状视图
    QListView list;//列表视图
    QTableView table;//表格视图
    tree.setModel(&model);//给视图设置模型
    list.setModel(&model);
    table.setModel(&model);
    tree.setSelectionMode(QAbstractItemView::MultiSelection);//设定View对象的属性
    list.setSelectionModel(tree.selectionModel());//调用现有属性来设置该view对象的属性
    table.setSelectionModel(tree.selectionModel());
posted @ 2020-12-07 11:43  已经被探测的小行星  阅读(264)  评论(0)    收藏  举报