鱼C论坛

 找回密码
 立即注册
查看: 3468|回复: 0

[技术原创] 155-输入\输出、目录、文件的其他相关类-【扫盲】

[复制链接]
发表于 2016-11-7 11:02:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2016-11-7 15:13 编辑

前面搞定了,最重要的几个入门级对文件、目录、I\O的操作介绍。

还有一些零碎的,一并扫清哈~


  • 应用程序设置


  • 0.gif


    QSettings类提拱了一个持久的与平台无关的应用程序设置!

    是不是很拗口~

    用户通常期望应用程序可以记住他们的设置~

    例如,设置了窗口大小和位置,后续程序一样实现。

    这些信息在Win上一般存储在系统注册表中,在Mac上存储在XML偏好文件中,在·Unix中存储在INI文本文件。

    QSettings是对这些技术的一个抽象,可以使用一种可移植的方式来保存和恢复应用程序的设置,支持自定义存储类型。

    QSettings的API是基于QVariant的,保存大多数基于值的类型

    Qt有一个示例程序:Settings Editor,在Tools分类中,有兴趣自行看之哈~


  • 统一资源定位符


  • 0.png



    • QUrl

      QUrl类提供了一个方便的接口来操作URLs!

      URL啥意思呢?

      就是:

      Uniform Resource Locator的缩写。


      知道你还没懂,翻译成中文就是:

      统一资源定位符!


      啥?你还没懂?!

      那这个你肯定懂了:

      网页网址!


      一个标准的URL格式如下:

      protocal://hostname[:port]/path/[? query]#fragment

      protocol 指定传输协议,http还是ftp
      hostname 指定存放资源的服务器的域名系统的主机名或者IP地址
      在主机名前可以包含连接到服务器所需的用户名和密码
      (username:password)
      port 端口号,可选,省略时使用默认的端口号,htttp默认为80
      path 指定主机上的目录或者文件地址,路径中使用'/'分隔符
      query 设置查询参数,可选,参数间使用‘&’隔开
      fragment 指定网络资源中的片段


      例如下面的URL:
      http://www.fishc.com/map/

      用来查询www.fishc.com上的map网页。

      QURL可以解析和构建编码或者编码格式的URLs,支持国际化域名IDNs。

      可以在构造函数中传递一个QString来初始化QUrl

      或者使用setUrl()和setEncodedUrl()~

      这两种格式俗名叫:

      编码和末编码


      编码一般用于发送到web服务器。

      末编码适合像用户展示。

      常用函数给你总结下:

      setScheme() 设置协议 setUserName() 设置用户名
      setPassword() 设置密码 setHost() 设置主机
      setPort() 设置端口 setPath() 设置路径
      setEncodedQuery() 设置查询字符串 setFragment() 设置片断
      setAuthority() 一次性设置用户名、密码
      主机、端口
      setUserInfo() 一次性设置用户名、密码




    • QUrlInfo

      QUrlInfo类存储了URLs的相关信息。

      URLs可以被检索的信息包括name()文件名、permissions()权限、owener()拥有者、group()、size()

      lastModified()最后修改日期、lastRead()最后被读取的日期、isDir()是否是目录、isFile()是否是文件

      isSymLink()是否是符号链接、isWritable()是否可写、isReadable()是否可读、isExecutable()是否可执行



  • Qt资源


  • QResource类提供了接口直接读取资源文件,用来表示一组数据的对象。

    该组数据设计了一个单一的资源实体。

    QResource类可以使用原始格式来直接访问字节,允许不使用缓冲拷贝或间接来读取数据。

    QResource类也可以使用绝对路径进行加载,'/'字符开始,或者使用资源表示法,‘:’开始。

    一个资源可以保留在一个程序的二进制文件外面,等需要时使用registerResource()来加载。

    U.gif


    有兴趣的可以看The Qt Resource System~

  • 缓冲区


  • QBuffer类为QByteArray提供了一个QIODevice接口。

    允许使用QIODevice接口来访问QByteArray。

    QByteArray被视为一个标准的随机访问的文件。

    默认就是:

    创建一个QBuffer内部自动创建一个QByteArray缓冲区


    常用函数如下哈:

    open() 打开一个缓冲区 write() 对缓冲区进行写入
    putChar() 对缓冲区进行写入 read() 读取缓冲区
    readLine() 读取缓冲区 readAll() 读取缓冲区
    getChar() 读取缓冲区 size() 返回缓冲区的当前大小
    seek() 定位到缓冲区的一个指定位置。 close() 结束访问并关闭



    好吧,再举两个如何写入\读取的例子。

    QBuffer向QByteArray写入数据:
    QByteArray byteArray;
        QBuffer buffer(&byteArray);
        buffer.open(QIODevice::WriteOnly);
        QDataStream out(&buffer);
        out<<QApplication::palette();

    QBuffer如何从QByteArray读取数据:
    QPalette palette;
        QBuffer buffer(&byteArray);
        buffer.open(QIODevice::ReadOnly);
        QDataStream in(&buffer);
        in>>palette;

    注意:

    当有新的数据到达了缓冲区,QBuffer会发射readyRead()信号!

    通过关联这个信号,可以使用QBuffer来存储临时的数据,而后进行相应的处理~

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 17:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表