• Chapter2:Qt5模板库,工具类及控件


    2.1 字符串类
     QString类保存16位Unicode值,提供了丰富的操作,查询和转换等函数。
       (1):QString提供了一个二元的"+"操作符用于组合两个字符串
       (2):QString::append()
       (3):组合字符串的另一个函数时QString::sprintf()
       (4):Qt还提供了另一种方便的字符串组合方式,使用QString::arg()函数
       (5):QString也提供了一些其他组合字符串的方式,包括
          insert()
          prepend()
          replace()
       (6):很多时候去掉一个字符串两端的空白(" " " " " " " ")
          QString::trimmed()
          QString::simplified()

     2.1.2 查询字符串数据
        (1)函数QString::startsWith()判断一个字符串是否以某个字符串开头
           QString str="Welcome to you!";
           str.startsWith("Welcome",Qt::CaseSensitive); //返回true
        (2):函数QString::endsWith()
        (3):函数QString::contains()判断一个指定的字符串是否出现过
        (4):比较两个字符串也是经常的功能
           operatr<(const QString&)
           operat<=(const QString&)
           ......
           ......
           compare(const QString&,const QString&,Qt::CaseSensitivity);
     2.1.3 字符串的转换
        (1):QString提供了丰富的转换函数。QString::toInt() QString::toDouble(),QString::toFloat(),QString::toLong(),toLongLong
           QString str="125";
           bool ok;
           int hex = str.toInt(&ok,16); //ok = true,hex=293
           int dec = str.toInt(&ok,10); //ok =  true,dec=125
        (2):QString提供的字符编码即的转换函数将会返回一个const char*类型版本的QByteArray,即构造函数QByteArray(const char*)构造的QByteArray对象;QByteArray支持的转换函数有一下几种:
           toAscii()
           toLatin1()
           toUtf8()
           toLocal8Bit()

          NULL字符串和空(empty)字符串的区别:
          NULL:是使用QString的默认构造函数或者使用"(const char*)0"
          空:是一个大小为0的字符串

    2.2:容器类
       注意:Qt的QObject及其他的子类(如QWidget和QDialog等)是不能够存储在容器中的。因为QObject及其他的子类没有复制构造函数和赋值操作运算符。一个可能代替的方案是存储QObject及其子类的指针。

       2.2.1 QList类,QLinkedList类和QVector类
          QList<T>维护了一个指针数组,该数组存储的指针指向QList<T>存储的列表项的内容
          QLinkedList<T>是一个链式列表,它以非连续的内存块保存数据
          QVector<T>

       2.2.2 QMap类和QHash类
          QMap类和QHash类具有非常类似的功能,他们的差别仅仅在于:
          (1):QHash具有比QMap更快的查找速度
          (2):QHash以任意的顺序存储数据项,而QMap总是按照键Key顺序存储数据;
          (3):QHash的键类型Key必须提供operator==()和一个全局的qHash(Key)函数,而QMap的键类型Key必须提供operator<()函数

    2.3 QVariant类
       QVariant类类似于c++的联合(union)类型,它不仅能够保存很多Qt类型的值,包括QColor QBrush等等,也能够存放Qt的容器类型的值。

    2.4 算计及正则表达式

    •  2.4.1 Qt 5常用算法

      Qt的<QtAlgorithms>和<QtGlobal>模板提供了一些算法和函数。
      qAbs(a):
      qMax(b,c);
      qRound(b):返回一个与浮点数最接近的整数
      qSwap(bn,cn):交换两个数的值

    •  2.4.2 基本的正则表达式
      • Qt的QRegExp类似正则表达式的表示类,它基于Perl的正则表达式语言,完全支持Unicode
      •  正则表达式由:
        • 表达式(expressions)
        • 量词(quantifiers)
        • 断言(asertions)
    •    (1):最简单的表达式是一个字符

         [AEIOU] :表示匹配所有大写元音字母
         [^AEIOU]:表示匹配所有非元音字母
         [a-z]:表示匹配所有小写英文字母

    • (2):量词说明表达式出现的次数

        x[1,2]:表示x可以至少有一个,至多两个
        [A-Za-z_]+[A-Za-z_0-9]*:要求以字母或下划线开头,后面可以是字母,数字和下划线
        其中

      • “+”:表示[A-Za-z]至少出现一次,可以出现多次
      • "*":表示[A-Za-z_0-9]可以出现零次或多次
      •   
    • (3)"^","$",""都是正则表达式的断言
      •   
    • 2.5 控件
      • 2.5.1 按钮组
        • Push Button
        • Tool Button
        • Radio Button
        • Check Box
        • Command Link Button
        • Button Box
      • 2.5.2 输入空间组
      • 2.5.3 显示控件组
      • 2.5.4 空间间隔组
      • 2.5.5 布局管理组
      • 2.5.6 容器组
      • 2.5.7 项目视图组
      • 2.5.8 项目控件组

    L2.1 字符串QString:概念解析

      L1:隐式共享

    作者:长风 Email:844064492@qq.com QQ群:607717453 Git:https://github.com/zhaohu19910409Dz 开源项目:https://github.com/OriginMEK/MEK 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 感谢您的阅读。如果觉得有用的就请各位大神高抬贵手“推荐一下”吧!你的精神支持是博主强大的写作动力。 如果觉得我的博客有意思,欢迎点击首页左上角的“+加关注”按钮关注我!
  • 相关阅读:
    C# 中的委托和事件
    C# 托管资源和非托管资源
    .NET Core 2.0
    PyQt5教程——事件和信号(5)
    PyQt5教程——布局管理(4)
    PyQt5教程——菜单和工具栏(3)
    PyQt5教程——第一个程序(2)
    PyQt5教程——介绍(1)
    如何通过 GitLab 进行在Azure WebApp中持续部署
    如何检测 Azure Web 应用沙盒环境文件系统存储量
  • 原文地址:https://www.cnblogs.com/zhaohu/p/8931397.html
Copyright © 2020-2023  润新知