Qt基本数据类型及函数使⽤
Qt基本数据类型及函数使⽤
1. QT基本数据类型定义在#include 中
QT基本数据类型有:
QT C++解释
qint8signed char有符号8⽐特数据
qint16signed short64位
unicode文件格式
qint32signed int32位
qint64longlong int 或(__int64)32位
qreal double 或 float除⾮配置了-qreal float选项,否则默认为double quint8unsigned char⽆符号8⽐特数据类型||| quint64unsigned long long int 或 (unsigned __int64)⽆符号64⽐特数据类型,Windows中定义为unsigned __int64 uchar unsigned char⽆符号字符类型
uint unsigned int⽆符号整型
ulong unsigned long⽆符号长整型
ushort unsigned short⽆符号短整型
qint32signed int32位
qint32signed int32位
2.常⽤函数
T qAbs(const T &t) //求绝对值
T &qMax(const T &t1,const T &t2) //最⼤值
T &qMin(const T &t1,const T &t2) //最⼩
T &qBound(const T &t1,const T &t2,const T &t3)
qreal abs=-4.567;
qreal myValue1,myValue2,myValue3,myValue4;
qint32 int_a=6;
qint32 int_b=4;
qint32 int_c=7;
myValue1=qAbs(abs);
myValue2=qMax(int_a,int_b);
myValue3=qMin(int_a,int_b);
myValue4=qBound(int_a,int_c,int_b);
⽐较浮点数⼤⼩
bool qFuzzyCompare(float p1,float p2);
bool qFuzzyCompare(double p1,double p2);
前⾯⽐后⾯⼤true 否则false
qreal abs=-4.567;
qreal abs2=3.24;
bool i=qFuzzyCompare(abs,abs2);//返回false
3. QString:Qt字符串操作
3.1初始化
QString(const QChar unicode,int size=-1);
QString(QChar ch);
QString(int size,Qchar ch);
QString(QLatin1String str);
QString(const QString &other);
QString(QString &&other);
QString(const char str);
QString(const QByteArray &ba);
3.2 追加
prepend();
append();
push_pack();
push_front();
QString  str ="NC";
str.prepend("hello");
str.append("EDU");
str.push_back("goo");
str.push_front("bad");
3.3 替换
replace(1,0,str1);//参数⼀:从第⼏个位置开始,参数⼆:从基点往后⾯数的⼏个位置,然后把这⼀段删除,换上替换的str
QString  str ="NC";
QString  str1="wc";
QString  str ="say yes";
QString  str1="no";
3.4 删除
按位删除 remove(int,int);
删除特定字符串 remove(QChar(‘y’),Qt::CaseInsensitive);
Qt::CaseInsenstive //宏 不区分⼤⼩写 默认情况下是区分⼤⼩写的
QString  str ="say yes";
QString  str1="no";
//结果 es
//结果 sa es
3.5 QString插⼊
str.insert(4,QString(“ok”));
3.6 判断为NULL | Empty
QString str2="";
QString  str1="no";
i=QString().isEmpty();//true
i=str2.isEmpty();//true
i=str1.isEmpty();//false
i=QString().isNull();//true
i=QString("").isNull();//false
i=QString("asd").isNull();//false
3.7查字符串出现的位置
indexOf(QString str,int index)//index表⽰从哪个位置开始,0为起点,返回的是字符串下标int i;
QString  str ="stick question";
QString  str1="ti";
i=str.indexOf(str1);//1
i=str.indexOf(str1,2);//10
i=str.indexOf(str1,11);//-1
3.8 查字符串出现的次数
1| QString  str ="Stick question";
2|  QString  str1="sti";
3|  unt(str1);//返回1
4|  unt(str1,Qt::CaseInsensitive);//返回2
3.9 字符串截取
1|QString  str ="Stick question";
2|  QString  str1="sti";//向左截取
str1=str.left(7);//从左开始数向右截取
i=str.right(5),//从右边开始数中间截取
j=str.mid(6,4);//从第⼀个参数开始,向后数4个
3.10 数字转字符串QString
QString::number(uint n,int base=10);//静态⽅法
QString::number(uint n,16)
QString::number(uint n,16).toUpper();
QString::number(num);//qreal num
QString::number(num,'g',8);//这⾥8位是不计算⼩数
3.11 格式化输出
qreal x=123.123345678;
QString str1="RainYa";
QString str2;
str2=QString("name is %1,age is %2").arg(str1).arg(x,0,'f',3);
//qreal 保留⼏位⼩数,最后⼀个参数决定
4. QByteArray
4.1 初始化
QByteArray ba(“hello”);
ba[0];
ba.at(0);
4.3 QByteArray 和char *转换
转成char*
QByteArray ba("hello");
const char* stData();
转成 QByteArray
//通过字符集转换
char*p="abc";
QString c=QString(p);
QByteArray Utf8();
//通过QByteArray::fromRawData(const char *,int);
QByteArray ba2(QByteArray::fromRawData(p,5));
4.4 关于 /0的理解
QByteArray ba("hel\0l\0o");
qDebug()<<ba.size();
qDebug()<&stData();//在转换为字符串的时候,
//\0会终⽌这⾥得到 3,hel
4.5 QVariant变量没有数据类型,像是⼀个最常见的Qt的数据类型的公⽤体(Union)但是⼀次只能是⼀个对象,有些对象可能是多值的(⽐如字符串列表)
可以⽤ toT():T表⽰⼀种数据类型,将QVariant转化为别的类型并且获取值,在这⾥是赋值⼀份对象,所以原来的对象不会改变
QVariant b("fdfdsgfe");//QVariant
QString String();//QString
--------------该函数不可以⽤做类型转换-------
QStringList str1;
str1<<"ni"<<" hao";
QVariant b(str1);
QStringList StringList();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。