当前位置: 首页 > news >正文

什么是网站开发流程导购网站自己做电商

什么是网站开发流程,导购网站自己做电商,wordpress整站搬家教程,徐州做网站的公司哪些好Qt 是一个跨平台C图形界面开发库#xff0c;利用Qt可以快速开发跨平台窗体应用程序#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置#xff0c;实现图形化开发极大的方便了开发效率#xff0c;本章将重点介绍如何运用QFileSystemWatcher组件实现对文件或…Qt 是一个跨平台C图形界面开发库利用Qt可以快速开发跨平台窗体应用程序在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置实现图形化开发极大的方便了开发效率本章将重点介绍如何运用QFileSystemWatcher组件实现对文件或目录的监视功能。 QFileSystemWatcher 是 Qt 框架中提供的一个类用于监视文件系统中的文件和目录的变化。它允许你在文件或目录发生变化时接收通知并可以用于监视文件的创建、删除、重命名以及内容修改等操作。这对于需要实时监控文件系统变化的应用程序是非常有用的。 下面是关于 QFileSystemWatcher 类的一些常用函数的解释 函数描述QFileSystemWatcher(QObject *parent nullptr)构造函数创建一个文件系统监视器对象。void addPath(const QString path)添加要监视的文件或目录路径。void addPaths(const QStringList paths)添加要监视的多个文件或目录路径。bool removePath(const QString path)移除要监视的文件或目录路径。void removePaths(const QStringList paths)移除要监视的多个文件或目录路径。bool contains(const QString path) const检查监视器是否包含指定的文件或目录路径。QStringList files() const返回当前监视的文件路径列表。QStringList directories() const返回当前监视的目录路径列表。void setFilter(QFileSystemWatcher::Filter filter)设置监视器的过滤器用于指定要监视的事件类型。QFileSystemWatcher::Filter filter() const返回监视器当前的过滤器设置。void fileChanged(const QString path)信号当监视的文件发生变化时发出。void directoryChanged(const QString path)信号当监视的目录发生变化时发出。 这些函数允许你动态地添加或移除要监视的文件或目录设置过滤器以确定要监视的事件类型并连接相应的信号以处理文件系统的变化事件。 首先我们需要新增一个filesystem.h头文件该类主要用于实现对文件访问的封装其中addWatchPath用于增加一个被监控目录当目录被更新世则调用directoryUpdated文件被修改调用fileUpdated。 #ifndef FILESYSTEM_H #define FILESYSTEM_H #include QObject #include QMap #include QString #include QMap #include QFileSystemWatcherclass FileSystemWatcher : public QObject {Q_OBJECTpublic:static void addWatchPath(QString path);public slots:// 目录更新时调用void directoryUpdated(const QString path);// 文件被修改时调用void fileUpdated(const QString path);private:explicit FileSystemWatcher(QObject *parent 0);private:// 单例static FileSystemWatcher *m_pInstance;// QFileSystemWatcher变量QFileSystemWatcher *m_pSystemWatcher;// 当前每个监控的内容目录列表QMapQString, QStringList m_currentContentsMap; };#endif // FILESYSTEM_H接着是filesystem.cpp主函数部分首先FileSystemWatcher::addWatchPath用于增加一个监控目录。这里的重点在于创建两个信号当m_pSystemWatcher收到监控数据时我们让其分别去触发directoryChanged与fileChanged两个信号在信号中分别携带一个参数传递给directoryUpdated与fileUpdated槽函数上进行处理如果是目录则保存目录中的内容。 void FileSystemWatcher::addWatchPath(QString path) {qDebug() QString(添加监控目录: %1).arg(path);if (m_pInstance NULL){m_pInstance new FileSystemWatcher();m_pInstance-m_pSystemWatcher new QFileSystemWatcher();// 连接QFileSystemWatcher的directoryChanged和fileChanged信号到相应的槽connect(m_pInstance-m_pSystemWatcher, SIGNAL(directoryChanged(QString)), m_pInstance, SLOT(directoryUpdated(QString)));connect(m_pInstance-m_pSystemWatcher, SIGNAL(fileChanged(QString)), m_pInstance, SLOT(fileUpdated(QString)));}// 添加监控路径m_pInstance-m_pSystemWatcher-addPath(path);// 如果添加路径是一个目录保存当前内容列表QFileInfo file(path);if (file.isDir()){const QDir dirw(path);m_pInstance-m_currentContentsMap[path] dirw.entryList(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files, QDir::DirsFirst);} }接着是FileSystemWatcher::directoryUpdated函数的实现部分如下所示代码通过QFileSystemWatcher来监听指定目录下文件和子目录的变化。当目录发生变化时调用directoryUpdated槽函数比较最新的目录内容和之前保存的内容找出新增文件、删除文件以及文件重命名等变化。 功能概述 添加监控路径通过addWatchPath函数添加监控路径创建QFileSystemWatcher对象并连接相关信号和槽。目录更新处理当监控的目录发生变化时调用directoryUpdated槽函数。内容变化比较比较最新的目录内容和之前保存的内容找出新增文件、删除文件和文件重命名等变化。文件重命名处理如果有文件重命名输出文件重命名的信息。新增文件处理输出新建文件的信息并可以在相应的逻辑中处理每个新文件。删除文件处理输出删除文件的信息并可以在相应的逻辑中处理每个被删除的文件。 代码对文件系统的变化进行了细致的监控和处理可以用于实时监控目录下文件的变动情况例如新增文件、删除文件和文件重命名等操作。当用户需要自定义功能时可以在信息输出前对特定目录做进一步处理以达到监视并控制特定文件的功能。 // 任何监控的目录更新添加、删除、重命名则调用 void FileSystemWatcher::directoryUpdated(const QString path) {qDebug() QString(目录更新: %1).arg(path);// 比较最新的内容和保存的内容找出区别(变化)QStringList currEntryList m_currentContentsMap[path];const QDir dir(path);QStringList newEntryList dir.entryList(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files, QDir::DirsFirst);QSetQString newDirSet QSetQString::fromList(newEntryList);QSetQString currentDirSet QSetQString::fromList(currEntryList);// 添加了文件QSetQString newFiles newDirSet - currentDirSet;QStringList newFile newFiles.toList();// 文件已被移除QSetQString deletedFiles currentDirSet - newDirSet;QStringList deleteFile deletedFiles.toList();// 更新当前设置m_currentContentsMap[path] newEntryList;if (!newFile.isEmpty() !deleteFile.isEmpty()){// 文件/目录重命名if ((newFile.count() 1) (deleteFile.count() 1)){qDebug() QString(文件重命名 %1 到 %2).arg(deleteFile.first()).arg(newFile.first());}}else{// 添加新文件/目录至Dirif (!newFile.isEmpty()){qDebug() 新建文件或目录: newFile;foreach (QString file, newFile){// 处理操作每个新文件....}}// 从Dir中删除文件/目录if (!deleteFile.isEmpty()){qDebug() 删除文件或目录: deleteFile;foreach(QString file, deleteFile){// 处理操作每个被删除的文件....}}} }同理当文件被修改时则调用fileUpdated函数只需要去除绝对路径与文件名即可如下代码所示 void FileSystemWatcher::fileUpdated(const QString path) {QFileInfo file(path);QString strPath file.absolutePath();QString strName file.fileName();qDebug() QString(文件 %1 路径 %2 修改).arg(strName).arg(strPath); }你可以自行运行课件FileSystemWatcher.zip来观察监控效果如下图
http://www.dnsts.com.cn/news/222502.html

相关文章:

  • 购物网站怎么做有哪些做红色旅游景点的网站
  • 做餐饮的网站建设网站培训学校
  • 质感设计网站空调网站模板
  • 网站设计公司成都销售网站建设公司
  • 手机版网站快照如何做网站建设宀金手指花总十五
  • 一个网站是怎么做出来的尤溪住房和城乡建设局网站
  • 网站的栏目结构简图怎么做新手想开网店怎么开
  • 为什么做动漫短视频网站怎么推广自己做的网站
  • 全运网站的建设合肥网站建站报广告代理
  • 公司网站的建设sirna在线设计网站
  • 哈尔滨seo网站管理wordpress发文章api
  • 网站备案名称重复免费网站服务器2020
  • 网站建设需要提供哪些信息专业制作ppt
  • 网站维护服务费网站备案幕布照片尺寸
  • 北京网站制作网络推广公司wordpress图片实现下一篇文章
  • 做网站素材在哪里找天下网商自助建站系统
  • 六安市建设网站市场信息价在线制作海报网站
  • 江西工程建设信息网站东城网站制作公司
  • 小说网站怎么做防采集net网站开发是什么
  • 广告牌图片100例关键词推广seo
  • 比较好的室内设计网站广东省东莞阳光网
  • 医院网站优化策划网站开发客户提供素材
  • 什么网站可以做任务领赏金怎么用dw做简单网站
  • 免费网站整站模板下载开发人员选项怎么打开
  • 应用宝aso优化seo优化培训
  • 如何做类似优酷的视频网站怎样成立网站
  • 网站编程脚本语言文章网站后台
  • 做网站 包含详情页设计吗wordpress 去优酷广告插件
  • 做相册的网站 ppt网站截图怎么做
  • 企业网站制作多少钱网站建设竞品分析