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

北京网站开发周期企业网站建设的主要步骤

北京网站开发周期,企业网站建设的主要步骤,如何做网站卖产品,猪八戒网站开发合同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.hkea.cn/news/14487149/

相关文章:

  • 建设申请网站做网站合同模板
  • 为什么做网站推广没有网站可以做京东联盟吗
  • 廊坊高端网站建设wordpress分类模板制作
  • 给网站建设提意见怎么制作网页里面的内容
  • com网站域名注册保险公司网站建设方案
  • 网站建设中页面下载支付宝网页版登录入口
  • 企业网站申请永久oa办公系统开发
  • 成都网站建设哪家好精湛的赣州网站建设
  • 网页制作网站教程怎么把做网站发给别人
  • 如何快速写一个网站网站建设捌金手指花总三
  • 济南网站建设(力选聚搜网络)长沙市app下载
  • 自适应网站主要用什么做沈阳建设学院
  • 南京网站网站建设oneinstack. WordPress
  • 设计网站案例中国经济网官网
  • 网站优化排名易下拉排名平面设计入门
  • vps里面网站php页面无法打开网站怎么做按钮
  • 有没有帮忙做网站建网站行业
  • wordpress耗资源升级程序关键词优化排名公司
  • 珍岛网站模板跨境电商网站开发公司
  • 阿里云建设网站好不好昆山h5网站建设
  • 钱宝做任务的网站怎么下禁止显示网站目录
  • 淘客网站推广免备案网站建设业务拓展
  • 网站开发的岗位及职责淄博公司做网站
  • 做网站容易挣钱吗wordpress wpmu
  • 点网站建设seo网站优化及网站推广
  • 网站总是跳转建设网站案例分析
  • 旅游网站建设实施方案网站建设导航栏
  • 手机网站 免费重庆专门做网站的公司
  • 企业型网站建设咨询电话如皋建设网站
  • 北京网站设计建设住房和城乡建设部门户网站