Qt“模型/视图”实例

InterView框架提供了一些可以直接使用的模型类和视图类,如 QStandardItemModel 类、 QDirModel 类、 QStringListModel 类,以及 QColumnView类 、 QHeaderView类 、 QListView 类、 QTableView 类和 QTreeView 类等。

1、效果展示

2、具体代码

#include "dirmodeex.h"
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QDirModel model; //(a)
    /*新建三种不同的View对象,以便文件目录可以以三种不同的方式显示*/
    QTreeView tree;
    QListView list;
    QTableView table;
    tree.setModel(&model);  //(b)
    list.setModel(&model);
    table.setModel(&model);
    tree.setSelectionMode(QAbstractItemView::MultiSelection);  //(c)
    list.setSelectionModel(tree.selectionModel());  //(d)
    table.setSelectionModel(tree.selectionModel());  //(e)
    QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&list,SLOT(setRootIndex(QModelIndex)));  //(f)
    QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),&table,SLOT(setRootIndex(QModelIndex)));  

    QSplitter *splitter = new QSplitter;
    splitter->addWidget(&tree);
    splitter->addWidget(&list);
    splitter->addWidget(&table);
    splitter->setWindowTitle(QObject::tr("Model/View"));
    splitter->show();

    return a.exec();
}

注意:

QT开发交流+赀料君羊:714620761

(a): QDirModel model; 新建一个QDirModel对象,为数据访问做准备。QDirModel的创建还可以设置过滤器,即只有符合条件的文件或目录才可被访问。

(b): tree.setModel(&model); 调用 setModel() 函数设置View对象的Model为QDirModel对象的model。

: tree.setSelectionMode(QAbstractItemView::MultiSelection); 设置QTreeView对象的选择方式为多选。

QAbstractItemView提供五种选择模式,即 QAbstractItemView::SingleSelection 、 QAbstractItemView::NoSelection 、 QAbstractItemView::ContiguousSelection 、 QAbstractItemView::ExtendedSelection 和 QAbstractItemView::MultiSelection 。

(d): list.setSelectionModel(tree.selectionModel()); 设置QListView对象与QTreeView对象使用相同的模型

(e): table.setSelectionModel(tree.selectionModel()); 设置QTableView对象与QTreeView对象使用相同的模型

(f):为了实现双击QTreeView对象中的某个目录时,QListView对象和QTableView对象中显示此选定目录下的所有文件和目录,需要连接QTreeView对象的 doubleClicked() 信号与QListView对象和QTableView对象的 setRootIndex() 槽函数。

展开阅读全文

页面更新:2024-04-20

标签:视图   模型   过滤器   函数   框架   实例   信号   对象   方式   文件   目录

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top