首页 > 其他分享 >qt常用数据类型

qt常用数据类型

时间:2022-10-08 21:44:06浏览次数:64  
标签:常用 const qt QByteArray 数据类型 QString str qDebug QVariant

常用数据类型

1、常用基本数据类型

常用接口
//求绝对值,T是泛型,以下都是
T qAbs(const T &t)

//最大值和最小值,会把最大或最小的返回出来
T &qMax(const T &value1, const T &value2)
T &qMin(const T &value1, const T &value2)
    
//取中间值3个区中间的那个(比大小)
const T &qBound(const T &min, const T &value, const T &max)
    
//比较浮点数大小
bool qFuzzyCompare(float p1, float p2)
bool qFuzzyCompare(double p1, double p2)


//随机数,可以像C的随机数一样使用,能执行成功
//如果没有随机数种子(qsrand),每次通过qrand随机出来的数都是一样的
qsrand((uint)QTime::currentTime().msec);//获取时间的秒,当作随机数种子
qrand()%10;//随机0~9,和C语言讲的一样
//获取变量环境

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)
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="zhangsanlisi";
5.2追加
QString str="sta";
str.prepend("six");//在前面追加
str.append("deu");//在后面追加
//也可以使用push_back、push_front

5.3替换
QString str1="six sta edu";
QString str2="nine";
str1.replace(0,3,str2); //从第0个位子,把后面3个改为str2
//str1="nine sta edu";
5.4删除
QString str="five nine start edu";
str.remove(3,5);//从第三个位子删5个
qDebug()<<str;
str.remove(QChar('s'),Qt::CaseInsensitive);//不加第二个参,不区分大小写

qDebug()<<str;
str.remove("edu");//删除edu
qDebug()<<str;
5.5插入
QString str="Fiv star";
str.insert(8,QString("t edu"));
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="six SIX 666";
QString str2="six";

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 = "SIX";
qDebug()<<str.contains("six", Qt::CaseInsensitive);//不区分大小写 返回true
qDebug()<<str.contains("six");//返回false

5.9查找字符串出现次数
QString str = "SIX six";
qDebug()<<str.count("six", Qt::CaseInsensitive);//返回2
qDebug()<<str.count("six");//返回1
5.10字符串截取
QString str = "zhangsanlisi";
qDebug()<<str.left(7);//zhangsa 向左截取
qDebug()<<str.right(6);//anlisi 向右截取
5.11 mid()截取
QString str = "zhangsalisiwu";
qDebug()<<str.mid(7,4);//从第7个位子开始截取4个 lisi
qDebug()<<str.mid(7);//从第7个位子开始截取到最后 lisiwu
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位,'g'是默认参数,'f'是保留小数点后面的位数
qDebug()<<str;//1.0123457
5.13格式化输入
qint32 age=18;
QString name="yimu";
qreal score=66.654321;

QString str=QString("姓名:%1,年龄:%2,成绩:%3").arg(name).arg(age).arg(score,0,'f',2);//保留小数点后2位
//%1,%2为格式占位符

qDebug()<<str;//姓名:yimu,年龄:18,成绩:66.65

5.14 QString与std::string的转换
QString str1="aaaaa";
string str2=str1.toStdString();//QString转std::string
cout<<str2;

//头文件iostream string 命名空间std
//选项->文本编辑器->行为->默认编码选system->ok
std::string str1="aaaaa";
QString str2=QString::fromStdString(str1);//std::string转QString
qDebug()<<str2;



std::string str1="aaaa";
QString str2 = str1.data();//str1.c_str();也行
qDebug()<<str2;

6、QByteArray

提供一个字节数组(序列),QByteArray可用于存储原始字节(包括“\ 0” )和传统的8位 “\ 0” 端接字符串 . 使用QByteArray比使用const char 更方便.

在IO操作中,c语言常使用const char ,而Qt中常使用QByteArray;

QByteArray ba1="adf";//直接赋值
qDebug()<<ba1;

qDebug()<<ba1.at(2);//通过at访问

QByteArray ba2;
ba2[0]='c';//方括号赋值,访问
qDebug()<<ba2;

6.1 QByteArrar 与char*相互转换
QByteArray ba("这是一个字符串");
const char *p=ba.constData();//QByteArray转const char *
qDebug()<<p;

const char *p="aaa";//const char *转QByteArray
QString s=QString(p);
QByteArray ba=s.toUtf8();//
qDebug()<<ba;

const char *p="aaa";//const char *转QByteArray
QByteArray ba(QByteArray::fromRawData(p,3));
qDebug()<<ba;

const char *p="aaa\0bbb\0ccc";
QByteArray ba(QByteArray::fromRawData(p,11));
qDebug()<<ba;
cout<<ba.constData();//返回值类型为 const char * 输出为aaa

7、QVariant

QVariant变量是没有数据类型的。 QVariant类像是最常见的Qt的数据类型的一个共用体(union), 一个QVariant对象在一个时间只保存一个单一类型的一个单一的值(有些类型可能是多值的,比如字符 串列表)。

可以使用toT()(T代表一种数据类型)函数来将QVariant对象转换为T类型,并且获取它的值。这里 toT()函数会复制以前的QVariant对象,然后对其进行转换,所以以前的QVariant对象并不会改变。

QVariant v=1.23;
qDebug()<<v;
qDebug()<<v.toInt();//输出1,转成了整型

v=13;
qDebug()<<v;
v="aaaaa";
qDebug()<<v;

标签:常用,const,qt,QByteArray,数据类型,QString,str,qDebug,QVariant
From: https://www.cnblogs.com/Mr-black-7/p/16770317.html

相关文章

  • redis的set数据类型的基本操作
    1、首先连上你的redis以下一些命令很简单,或者执行命令后效果也无法体现的就没有进行截图展示2、set相关操作说明:redis的set是String类型的无序集合,它底层其实是一个val......
  • 【Java基础】Collection集合概述、基本使用、常用方法及Collection集合存储学生对象并
    目录​​一、Collection集合概述和基本使用​​​​集合体系结构​​​​二、Collection集合的常用方法​​​​三、Collection集合的遍历​​​​四、集合案例-Collection......
  • QT——代码布局
    #include"w_titlebarwidget.h"#include<QLabel>#include<QToolButton>#include<QHBoxLayout>#include<QDesktopWidget>#include<QApplication>#include<QDeb......
  • QT——代码添加弹簧,QSpacerItem
    QHBoxLayout*pHLayout=newQHBoxLayout();pHLayout->addWidget(pButton1);//添加空白区宽20px、高20pxpHLayout->addSpacerItem(newQSpacerItem(20,20));pHLayout->a......
  • 案例分享:Qt工程机械真空激光焊接系统软件产品定制(西门子PLC,mysql数据库,用户权限控制,界
    需求  1.触摸屏控制,按照客户需求,ui由本司美工承担设计,显示分辨率1280x1024,同时支持鼠标操作。  2.权限控制:三种权限,分为管理员(可以定制模块界面,修改产品名称等定......
  • 数据类型扩展及面试题
    数据类型扩展及面试题publicclassDemo3{publicstaticvoidmain(String[]args){//整数拓展进制二进制0b开头十进制八进制0开头十六进......
  • dos常用指令
    常用的dos命令#盘符切换例子:D:#查看当前目录下的所有文件dir#切换目录cd/dD:\develop#返回上一级cd..#进入目录cd目录名#清理屏幕cls#退出终端exit#查......
  • numpy的一些常用函数
    importnumpyasnp1.np.prod(obj) 将对象中的所有元素相乘,返回2.np.minimum(a,b) 返回二者对应位置的最小值,可对矩阵进行广播3.np.pad(a,((0,0),(0,0)),mode......
  • [JavaSE]数据类型
    数据类型基本数据类型数值数据类型整型byteshortintlonglonga=100L;整数拓展二级制:0b123inti=0b11;输出:3十进制:123inti=11;输出:11八进制:0123......
  • java常用代码
    1/写一个java类充当javabean,一个jsp作为界面,在jsp中使用后台java赋值,需在jsp添加<jsp:useBeanid="user"class="test.UserData"scope="session"/>class引用类所在的......