QtQFileSystemModel的使用
Model指的是数据
View指的是界面,View不用设置,只需要和Model进行绑定,绑定完成之后就是Model的格式了
例子:本例子中QListViewQTableViewQTreeView没有做任何处理,只是拖放至ui文件,设置了布局
MainWindow。hifndefMAINWINDOWHdefineMAINWINDOWHincludeQMainWindowincludeQFileSystemModelQTBEGINNAMESPACEnamespaceUi{classMainWindow;}QTENDNAMESPACEclassMainWindow:publicQMainWindow{QOBJECTpublic:MainWindow(QWidgetparentnullptr);MainWindow();privateslots:voidontreeViewclicked(constQModelIndexindex);private:Ui::MainWindowui;QFileSystemModelmodel;数据存放};endifMAINWINDOWH
MainWindow。cppincludemainwindow。hincludeuimainwindow。hincludeQDirMainWindow::MainWindow(QWidgetparent):QMainWindow(parent),ui(newUi::MainWindow){uisetupUi(this);modelnewQFileSystemModel(this);modelsetRootPath(homexinkai);这句话不知道为啥不生效,还是在这个文件夹uitreeViewsetModel(model);model和View做关联uilistViewsetModel(model);uitableViewsetModel(model);connect(uitreeView,SIGNAL(clicked(QModelIndex)),uilistView,SLOT(setRootIndex(QModelIndex)));实现多处联动connect(uitreeView,SIGNAL(clicked(QModelIndex)),uitableView,SLOT(setRootIndex(QModelIndex)));}MainWindow::MainWindow(){deleteui;}briefMainWindow::ontreeViewclicked现实文件名paramindexvoidMainWindow::ontreeViewclicked(constQModelIndexindex){QStringfileNamemodelfileName(modelindex(modelfilePath(index)));通过文件路径获取文件名称qint64sizemodelsize(index);QStringtypemodeltype(index);boolisDirmodelisDir(index);QStringfilePathmodelfilePath(index);uilabelNamesetText(fileName);uilabelSizesetText(QString(1B)。arg(size));uilabelTypesetText(type);uistatusbarshowMessage(filePath);uicBoxisDictionarysetChecked(isDir);}
最终界面样式