QT中的数据类型⽬录
1、常⽤数据类型
1.1、基本数据类型
基本数据类型qint8 quint8 qint16 quint16 qint32 quint32 qint64 quint64 qreal
1.2、常⽤接⼝
1.2.1、求绝对值
//T是泛型,以下都是T
qAbs(const T &t)
1.2.2、求最⼤值和最⼩值
//求最⼤值和最⼩值,会把最⼤或最⼩的返回出来
T &qMax(const T &value1, const T &value2)
T &qMin(const T &value1, const T &value2)
1.2.3、取中间值
//3个区中间的那个
const T &qBound(const T &min, const T &value, const T &max)
1.2.4、⽐较浮点数⼤⼩
bool qFuzzyCompare(float p1, float p2)
bool qFuzzyCompare(double p1, double p2)
1.2.5、设置随机数
随机数,可以像C的随机数⼀样使⽤,能执⾏成功
如果没有随机数种⼦(qsrand)//每次通过qrand随机出来的数都是⼀样的qsrand((uint)QTime::currentTime().msec);//获取时间的秒,当作随机数种⼦qrand()%10;//随机0~9
1.2.6、获取变量的环境
获取变量环境
QByteArray ba = qgetenv("Path");
qDebug() << ba ;
2、QSize,QSizeF
QSize(int width, int height) 表⽰⼤⼩,宽⾼
QSizeF(qreal width, qreal height)
/*
例:
QSize size(100, 10);
size.rwidth() += 20;//坐标变为120,12
有不带r的width,不带r不能这样修改
*/
3、QPoint,QPointF
QPoint(int xpos, int ypos);
QPointF(qreal xpos, qreal ypos);
/
/类似和QSize⼀样的操作,只不过这个表⽰的坐标
4、QRect
QRect(const QPoint &topLeft, const QPoint &bottomRight)
unicode文件格式QRect(const QPoint &topLeft, const QSize &size)
QRect(int x, int y, int width, int height)
5、QString
QString类提供了⼀个Unicode字符字符串。 注意是Unicode字符的字符串5.1、初始化
QString str="这⾥是初始化";
5.2、追加
QString str=".......";
str.prepend("在str的前⾯添加");
str.append("在str的后⾯添加");
也可以使⽤push_back、push_front
5.3、替换
QString str1="aaa bbb ccc";
QString str2="dd";
//str1="dd bbb ccc";
5.4、删除
QString str="Aaa bbb ccc ddd";
qDebug()<<str;
qDebug()<<str;
qDebug()<<str;
5.5、插⼊
QString str="aaa bbb";
str.insert(4,QString(" ccc"));//在位置4后插⼊" ccc"
5.6、判断是否为空
两种判断⽅式,注意区别
QString().isEmpty(); // returns true
QString("").isEmpty(); // returns true
QString("x").isEmpty(); // returns false
QString("abc").isEmpty(); // returns false
QString().isNull(); // returns true
QString("").isNull(); // returns false
QString("abc").isNull(); // returns false
5.7、查字符串出现的位⼦
QString str1="aaa AAA 666 777";
QString str2="aaa";
qDebug()<<str1.indexOf(str2);//返回0 到了第⼀个匹配的
qDebug()<<str1.indexOf(str2,1);//从1的位⼦开始搜索返回-1 区分⼤⼩写qDebug()<<str1.indexOf(str2,3,Qt::CaseInsensitive);//返回4 不区分⼤⼩写qDebug()<<str1.indexOf(str2,5);//返回-1 没到
5.8、查是否包含字符串
QString str = "AA";
qDebug()<&ains("aa", Qt::CaseInsensitive);//不区分⼤⼩写返回true qDebug()<&ains("aa");//返回false
5.9、查字符串出现次数
QString str = "aaa AAA";
qDebug()<&unt("aaa", Qt::CaseInsensitive);//返回2
qDebug()<&unt("aaa");//返回1
5.10、字符串截取
QString str = "aaabbbccddee";
qDebug()<<str.left(6); //aaabbb 向左截取
qDebug()<<str.right(6);//ccddee 向右截取
5.11、mid()截取
QString str = "abcdefg";
qDebug()<<str.mid(3,2);//从第3个位⼦开始截取2个 de
qDebug()<<str.mid(3);//从第3个位⼦开始截取到最后 defg
5.12、数字转QString
QString str;
qint32 val=10;
str=QString::number(val);//默认10进制
qDebug()<<str;//10
val=65535;
str=QString::number(val,16);//16进制同理后⾯还可以是2 8
qDebug()<<str;//ffff
qreal num=1.0123456789;
str=QString::number(num);//默认情况保留6位,整数位⼀起算进来
qDebug()<<str;//1.01235
str=QString::number(num,'g',8);//保留8位
qDebug()<<str;//1.0123457
5.13、格式化输⼊
qint32 age=18;
QString name="⼩明";
qreal score=96.654321;
QString str=QString("姓名:%1,年龄:%2,成绩:%3").arg(name).arg(age).arg(score,0,'f',2);
qDebug()<<str;//姓名:⼩明,年龄:18,成绩:96.65
5.14、QString与std::string的转换
QString str1="aaaaa";
string StdString();//QString转std::string
cout<<str2;
//头⽂件iostream string 命名空间std
//选项->⽂本编辑器->⾏为->默认编码选system->ok
string str1="aaaaa";
QString str2=QString::fromStdString(str1);//std::string转QString
qDebug()<<str2;
6、QByteArray
提供⼀个字节数组(序列),QByteArray可⽤于存储原始字节(包括“\ 0” )和传统的8位 “\ 0” 端接字符串 。使⽤QByteArray⽐使⽤const char更⽅便。
在IO操作中,c语⾔常使⽤const char,⽽Qt中常使⽤QByteArray;
QByteArrar与char*相互转换
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论