Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QFileSystemModel QFileSystemModel是Qt框架中的一个关键类,用于在Qt应用程序中管理和展示文件系统的结构。 QFileSystemModel(QObject *parent = nullptr) 构造函数,创建一个 QFileSystemModel 对象。 当需要使用此模型时,我们需要导入QFileSystemModel组件, 并在主类内定义QFileSystemModel类型的模型指针,并在主函数内通过new QFileSystemModel新建类,通过 parent) :QMainWindow(parent),ui(new Ui::MainWindow){ ui->setupUi(this); // 新建类指针 model=new QFileSystemModel
它使用QFileSystemModel类提供文件和目录信息。 ? 声明model为用于读取本地文件系统的数据模型。 QFileSystemModel model; model.setRootPath(""); if (parser.isSet(dontUseCustomDirectoryIconsOption))
setWindowTitle("候选器 by Qt君"); /* 设置补全器 */ lineEdit->setCompleter(completer); lineEdit->show(); 还可以使用QFileSystemModel 作为候选内容 QCompleter *completer = new QCompleter(); completer->setModel(new QFileSystemModel(completer))
首先了解下几种预定义模型: QStringListModel用于存储QString项的简单列表QStandardItemModel管理更复杂的项目树结构,每个项目都可以包含任意数据QFileSystemModel 程序环境:ubuntu Qt5.5.1 Ui结构是Design的tabWidget中分别有listView和tableView两个View,这两个View使用的是同一个数据源和相同的Model——QFileSystemModel mp_fileSystemModel = new QFileSystemModel; mp_fileSystemModel->setRootPath(QDir::currentPath());、 void
ubuntu 14.04 ,Qt Creator 5.5.1 ① widget.h #ifndef WIDGET_H#define WIDGET_H #include <QWidget>#include <QFileSystemModel void on_pbn_refresh_clicked(); void on_pbn_delete_clicked(); private: Ui::Widget *ui; QFileSystemModel
下面回到前面我们曾经见过的模型QFileSystemModel,看看如何从模型获取数据。 123 QFileSystemModel *model = new QFileSystemModel;QModelIndex parentIndex = model->index(QDir::currentPath ());int numRows = model->rowCount(parentIndex); 在这个例子中,我们创建了QFileSystemModel的实例,使用QFileSystemModel重载的
在Qt中,不管模型以什么结构组织数据,都必须为每个数据提供不同的索引值,使得视图能通过索引值访问模型中的具体数据 以QTreeView视图为例 QWidget w; QFileSystemModel 以QFileSystemModel为例: ? 也可以通过index索引值来查找数据,以QFileSystemModel模型为例, 与index相关的成员函数有: QIcon fileIcon ( const QModelIndex & index
添加描述 Ⅱ Model(QDirModel / QFileSystemModel)结合View(ListView TableView) Model不关心数据源,数据源可以是数据库或是其他形式,根据数据的特点选择合适的 //create Model mp_fileSystemModel = new QFileSystemModel; mp_fileSystemModel->setRootPath(QDir::currentPath
1.1 简单模型使用// 基本文件系统浏览器示例include <QApplication>include <QTreeView>include <QFileSystemModel>int main(int Chromium规则:RULE 3) auto tree_view = std::make_unique<QTreeView>(); auto model = std::make_unique<QFileSystemModel ↑ 数据存储与逻辑 显示控制与交互 渲染与编辑控制*/// 典型使用示例auto model = std::make_unique<QFileSystemModel
void MainWindow::init() {//视频文件 appPath=QCoreApplication::applicationDirPath(); model = new QFileSystemModel
文件夹浏览,PyQt 里有现成的控件:QTreeView + QFileSystemModel。 folder_tree.py 里是这样:from PyQt5.QtWidgets import QTreeViewfrom PyQt5.QtGui import QIconfrom PyQt5.QtCore import QFileSystemModel __init__() self.model = QFileSystemModel() self.model.setRootPath("") self.model.setFilter
4.7.2QTreeWidget和QDockWidget_实现 48:54 P24 4.8QTableWidget的使用 1:01:51 P25 5.1Model、View结构 18:11 P26 5.2QFileSystemModel
FileBrowserTab& obj); FileBrowserTab& operator=(const FileBrowserTab& obj); private: QTreeView* m_view; QFileSystemModel
QFileDialog:文件对话框 QListView:列表视图 QButtonGroup:按钮组 QScrollBar:滚动区域 QDateEdit:日期编辑框 QFontComboBox:字体选择框 QFileSystemModel
Qt的模型/视图框架,提到了Qt预定义的几个model类型: QStringListModel:存储简单的字符串列表 QStandardItemModel:可以用于树结构的存储,提供了层次数据 QFileSystemModel
提供了一些现成的模型来处理数据项: QStringListModel存储简单的QString项目列表; QStandardItemModel管理复杂的属性结构数据项,每一个数据项可以包含任意的数据; QFileSystemModel
如果后期想改成树形结构(支持多级文件夹嵌套),可以替换为 QTreeView + QFileSystemModel,不过我个人觉得平铺列表更直观。
QFileSystemModel:用于基于本地文件系统的内容获取数据模型。 QFileSystemModel(或任何其他QAbstractItemModel)与QTreeView(或任何其他QAbstractItemView)的组合可以导致 MVC 设计模式的实现。