#include <QDirModel> #include <QAbstractItemView> #include <QObject> #include <QTreeView> #include <QTableView> #include <QListView> #include <QSplitter> #include <QApplication> int main(int argc,char* argv[]) { QApplication app(argc,argv); QDirModel model; /*目录显示可以有三种方式*/ QTreeView tree; QTableView table; QListView list; tree.setModel(&model); list.setModel(&model); table.setModel(&model); /*设置为多选模式*/ /*特别注意tree.setSelectionMode(),不要写成tree.setSelectionModel().*/ /*tree.setSelectionModel()也是存在的,*/ /*只是我们这里是通过QAbstarctItemView::setSelectionMode()来设置*/ tree.setSelectionMode(QAbstractItemView::MultiSelection); list.setSelectionModel(tree.selectionModel()); table.setSelectionModel(tree.selectionModel()); /*连接响应事件*/ 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(QObject::tr("Model/View")); splitter->show(); return app.exec(); }