Qt字符串类应用与常用基本数据类型

简介: Qt字符串类应用与常用基本数据类型

一.Qt 字符串类应用

1、常用操作字符串

1.1 QString 提供一个二元的“+”操作符,主要用于组合两个字符串。QString str1'"Hello world"传递给 QString 一个 const char*类型的 ASCII 字符串“Hello world”,它被解释为一个典型的以“\0”结尾的 C 类型字符串

#include <QCoreApplication> //Qt提供一个事件循环
 
#include <QDebug> //输出流
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    //1.1 QString 提供二元+操作符运用,功能与+=一样
    QString str1 = "zgl";
    str1 = str1+"nb";
    qDebug()<<str1; //打印信息
    qDebug()<<qPrintable(str1); //去双引号
 
    QString str2 = "666";
    str2 =  str2 +"zgl";
    qDebug()<<str2;
    qDebug()<<qPrintable(str2);
 
    return a.exec();
}
1.2 QString::append()函数具备与“+=”操作符同样的功能,直接在一个字符串末尾添加另一个字符串。
    //1.2 QString::append()函数
    QString str1 = "zgl";
    QString str2 = "nb";
    str1.append(str2);
    qDebug()<<str1;
    qDebug()<<qPrintable(str1);
1.3 组合字符串: QString::sprintf ()。其实它跟 C++库当中sprintf()函数一样
    //1.3 QString::sprintf()函数
    QString strtemp;
    strtemp.sprintf("%s","hello zgl");
    qDebug()<<qPrintable(strtemp);
    strtemp.sprintf("%s","hello ljx");
    qDebug()<<qPrintable(strtemp);
 
    strtemp.sprintf("%s %s","zgl","ljx"); //空格bian表示字符串间距
    qDebug()<<qPrintable(strtemp);
1.4 字符串组合方式 QString::arg()函数,该函数的重载可以处理多种数据类型。因为它类型安全,同时支持 Unicode,可以改变%n 参数顺序。
    //1.4 QString::arg()函数
    QString strtemp;
    strtemp = QString("%1 very nb and %2").arg("zgl").arg(666);
    qDebug()<<strtemp;
    qDebug()<<qPrintable(strtemp);
2、常用查询字符串

2.1 函数 QString::startswith()判断一个字符串是否以某个字符串开头。Qt::CaseInsensitive 代表大小写不敏感; Qt::CaseSensitive表示大小定敏感。对应关系函数:QString::endsWith()。

    //2.1 QString::startswith()函数
    QString strtemp = "zgl very nb";
    qDebug()<<strtemp.startsWith("zgl",Qt::CaseSensitive); //大小写敏感,返回值为true
    qDebug()<<strtemp.startsWith("Zgl",Qt::CaseSensitive); //大小写敏感,返回值为false
    qDebug()<<strtemp.startsWith("Zgl",Qt::CaseInsensitive); //大小写不敏感,返回值为true
    qDebug()<<strtemp.startsWith("nb",Qt::CaseInsensitive); //大小写不敏感,返回值为false
2.2 函数 QString::contains (判断一个指定的字符串是否出现过)
    //2.2 QString::contains()函数
    QString strtemp = "zgl nb";
    qDebug()<<strtemp.contains("zgl",Qt::CaseSensitive); //返回值为true
2.3 QString::toInt()函数将字符串转换为整型数值   toDouble () /toFloat () /toLong()等等
    //2.3 QString::toInt()函数
    QString str="25";
    bool isloop; //bool类型返回值为true或者false
    int hex = str.toInt(&isloop,16); //十六进制的25转换为十进制为37
    qDebug()<<"isloop="<<isloop<<","<<"hex="<<hex<<endl;
2.4 QString::compare ( 函数对两个字符串进行比较)
    //2.4 QString::compare()函数
    int a1 = QString::compare("abc","Abc",Qt::CaseInsensitive); //大小写不敏感
    int b1 = QString::compare("abc","Abc",Qt::CaseSensitive); //大小写敏感
    int c1 = QString::compare("Abc","abc",Qt::CaseSensitive); //大小写敏感
    cout<<"a = "<<a1<<","<<"b = "<<b1<<","<<"c = "<<c1<<endl; //ASCII码大小写差32,A=65,a=97
2.5 Qt将QString 转换成 ASCII码
    //2.5 Qt将QString 转换成 ASCII码 ASCII码大小写差32,A=65,a=97
    QString str = "ABC abc";
    QByteArray bytes = str.toUtf8();
    for(int i=0;i<str.size();i++){
        qDebug()<<int(bytes.at(i));
    }

二、Qt 常见基本数据类型(注意:定义在#include <QtGlobal>)

QT基本数据类型定义在#include <QtGlobal> 中,QT基本数据类型有:

类型名称 注释 备注
qint8 signed char 有符号8位数据
qint16 signed short 16位数据类型
qint32 signed short 32位有符号数据类型
qint64 long long int 或(__int64) 64位有符号数据类型,Windows中定义为__int64
qintptr qint32 或 qint64 指针类型 根据系统类型不同而不同,32位系统为qint32、64位系统为qint64
qlonglong long long int 或(__int64) Windows中定义为__int64
qptrdiff qint32 或 qint64 根据系统类型不同而不同,32位系统为qint32、64位系统为qint64
qreal double 或 float 除非配置了-qreal float选项,否则默认为double
quint8 unsigned char 无符号8位数据类型
quint16 unsigned short 无符号16位数据类型
quint32 unsigned int 无符号32位数据类型
quint64 unsigned long long int 或 (unsigned __int64) 无符号64比特数据类型,Windows中定义为unsigned __int64
quintptr quint32 或 quint64 根据系统类型不同而不同,32位系统为quint32、64位系统为quint64
qulonglong unsigned long long int 或 (unsigned __int64) Windows中定义为__int64
uchar unsigned char 无符号字符类型
uint unsigned int 无符号整型
ulong unsigned long 无符号长整型
ushort unsigned short 无符号短整型


QDateTime
// 构造函数
QDateTime::QDateTime();
QDateTime::QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec = Qt::LocalTime);
// 公共成员函数
// 设置日期
void QDateTime::setDate(const QDate &date);
// 设置时间
void QDateTime::setTime(const QTime &time);
// 给当前日期对象追加 年/月/日/秒/毫秒, 参数可以是负数
QDateTime QDateTime::addYears(int nyears) const;
QDateTime QDateTime::addMonths(int nmonths) const;
QDateTime QDateTime::addDays(qint64 ndays) const;
QDateTime QDateTime::addSecs(qint64 s) const;
QDateTime QDateTime::addMSecs(qint64 msecs) const;
// 得到对象中的日期
QDate QDateTime::date() const;
// 得到对象中的时间
QTime QDateTime::time() const;
// 日期和时间格式, 格式字符参考QDate 和 QTime 类的 toString() 函数
QString QDateTime::toString(const QString &format) const;
// 操作符重载 ==> 日期时间对象的比较
bool QDateTime::operator!=(const QDateTime &other) const;
bool QDateTime::operator<(const QDateTime &other) const;
bool QDateTime::operator<=(const QDateTime &other) const;
bool QDateTime::operator==(const QDateTime &other) const;
bool QDateTime::operator>(const QDateTime &other) const;
bool QDateTime::operator>=(const QDateTime &other) const;
// 静态函数
// 得到当前时区的日期和时间(本地设置的时区对应的日期和时间)
[static] QDateTime QDateTime::currentDateTime();
QByteArray
    // QDateTime QByteArray
    QDateTime dt;
    QString strDT=dt.currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
    qDebug()<<strDT<<endl;
 
    QByteArray a1("Qt Creator Hello World.");
    QByteArray b1=a1.toLower(); // 将字符串大写字母转小写,小写不变
    qDebug()<<b1<<endl;
    QByteArray c1=a1.toUpper();
    qDebug()<<c1<<endl;
相关文章
|
4月前
Qt类结构分析
Qt类结构分析
66 3
|
2月前
|
存储 Linux C语言
(2)Qt中的字符串类型
本文介绍了Qt中的字符串类型QByteArray和QString,包括它们的构造函数、数据操作方法、查找操作、遍历操作以及与其他类型之间的转换,并解释了它们之间的区别。
141 5
(2)Qt中的字符串类型
|
2月前
|
C++ Windows
(1)Qt的基本数据类型以及基本输出
这篇文章介绍了Qt框架中的基本数据类型和日志输出方法,包括如何使用QDebug类及其相关函数进行调试和日志记录,以及如何取消输出时的空格和字符串引号,还提供了抑制输出的两种方式。
83 4
(1)Qt的基本数据类型以及基本输出
|
2月前
|
存储 C++ 容器
(3)Qt中的变体数据类型(QVariant)
QVariant是Qt中一个强大的变体数据类型,能够存储和管理多种Qt和C++基本数据类型,包括自定义类型,并通过setValue()和value()方法进行赋值和取值。
84 9
(3)Qt中的变体数据类型(QVariant)
|
3月前
|
设计模式 前端开发 安全
Qt注册类对象单例与单类型区别
在进行开发时,应当根据具体的应用场景和需求来选择使用单例模式或是单类型。如果是全局服务或状态管理,可能需要单例模式;如果是为了使QML环境下的不同组件能够访问到同一个后端服务对象,则可能需要使用单类型。
45 2
|
4月前
|
编解码 开发框架
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
312 3
|
4月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
317 3
|
4月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
193 2
|
4月前
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Slider的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Slider的使用及说明
476 2
|
4月前
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Dial的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Dial的使用及说明
197 2

推荐镜像

更多