模型视图
#include <QApplication>
#include <QAbstractItemModel> //模型
#include <QAbstractItemView> //视图
#include <QItemSelectionModel>//项选择模型
#include <QDirModel> //目录模型
#include <QTreeView>
#include <QListView>
#include <QTableView>
#include <QSplitter> //分割
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
//创建模型
QDirModel model;
//创建树视图、列表视图、表格视图
QTreeView tree;
QListView list;
QTableView table;
//视图设置模型
tree.setModel(&model);
list.setModel(&model);
table.setModel(&model);
//设置视图对象的选择方式为多选,list/table选择方式同tree
tree.setSelectionMode(QAbstractItemView::MultiSelection);
list.setSelectionMode(tree.selectionMode());
table.setSelectionMode(tree.selectionMode());
//树视图双击信号发射后,列表及表格视图刷新内容
QObject::connect(&tree,SIGNAL(doubleClicked(QModelIndex)),
&list,SLOT(setRootIndex(QModelIndex)));
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(QString("模型/视图"));
splitter->show();
return app.exec();
}