Qt学习之路之模型/视图类
2014-12-28 22:50
387 查看
InterView 框架提供了可直接使用的模型类和视图类~~~~
实现一个简单的文件目录浏览器。附上如下代码
main.cpp
程序运行结果
实现一个简单的文件目录浏览器。附上如下代码
main.cpp
#include <QtWidgets/QApplication> #include <QAbstractItemModel> #include <QAbstractItemView> #include <QItemSelectionModel> #include <QDirModel> #include <QTreeView> #include <QListView> #include <QTableView> #include <QSplitter> int main(int argc, char *argv[]) { QApplication a(argc, argv); //--为访问数据做准备 , 这里还可以设置过滤器,访问符合条件的文件或者目录 QDirModel model; //--新建对象 QTreeView tree; QListView list; QTableView table; //--调用函数setModel() 设置 view对象的model为QDirModel对象的model tree.setModel(&model); list.setModel(&model); table.setModel(&model); //----QTree对象设置为多选 tree.setSelectionMode(QAbstractItemView :: MultiSelection); //---QList对象设置与QTree对象使用相同的选择模型 list.setSelectionModel(tree.selectionModel()); //----QTable对象设置与QTree对象使用相同的选择模型 table.setSelectionModel(tree.selectionModel()); //---- 实现双击QTreeView对象中的某个目录时, //----QListView与QTableView对象显示此选定目录下的所有文件与内容 //----把QTreeView的信号 doubleClicked() 同 QListView与QTableView对象的槽setRootIndex()相连 /*--------------- 这里设置的信号是双击根目录 ---------------------*/ QObject::connect(&tree, SIGNAL(doubleClicked(QModelIndex)), &list, SLOT(setRootIndex(QModelIndex)) ); QObject::connect(&tree, SIGNAL(doubleClicked(QModelIndex)), &table, SLOT(setRootIndex(QModelIndex)) ); //---实现窗口的分割 QSplitter *spliter = new QSplitter; spliter->addWidget(&tree); spliter->addWidget(&list); spliter->addWidget(&table); spliter->setWindowTitle("Model/View"); spliter->show(); return a.exec(); }
程序运行结果
相关文章推荐
- Qt 学习之路 2(87):模型-视图高级技术
- Qt 学习之路:模型-视图高级技术
- Qt学习之路之模型
- Qt 学习之路 :视图代理
- Qt学习之路——对象模型
- Qt 学习之路 2(45):模型
- Qt学习:项视图类之自定义模型
- Qt-模型和视图的学习
- Qt 学习之路 2(85):动态视图
- Qt 学习之路 :自定义只读模型
- Qt 学习之路 2(46):视图和委托
- QT5 学习之路14---对象模型
- Qt学习之路---模型与自定义模型
- Qt 学习之路2(46)视图和委托---代码实现
- Qt 学习之路 :动态视图
- Qt 学习之路 2(49):自定义只读模型 QTableView
- Qt 学习之路 2(50):自定义可编辑模型
- Qt5开发学习之模型/视图结构(十)
- Qt 学习之路 2(56):使用模型操作数据库
- Qt 学习之路:视图选择 (QItemSelectionModel)