应项目的要求终于在一天中学会了把整型数组转换成QS tring,也算是小有成就的一天了。
由于还没发现怎么直接把整型数组转换成s tring类型,但是可以通过间接的方法来实现。首先要实现在Q t中建立整型数组,Qt为我们提供了强大的功能函数,就像VC中的库函数,Qt中通过包含某些函数的头文件可以直接调用内置函数来帮我们实现一些较为复杂的运算,QVector头文件就包含了建立数组的函数。具体的建立方法就是:
QVector<int>vector(10)//这里的十是你要建立的数组的元素个数
int *data=vector.data();//这个函数就是库函数了可以直接调用
for(int i=0;i<10;++i)//动态的分配内存是个内存空间,建立一个包含10个数据的i nt 数组
data[i]=2*i;//就这样数组就被建成了
接下来就是要设置一个中间变量,至于为什么要设置到后来你们也就明白了,之前说了Qt没法实现直接把整型数组变成Qstrin g那咱们就一个一个的把i nt数据转换成字符串;可以设置一个变量a,让a=data[i](i根据自己的需要来进行选择性的改变),然后就是要进行int换st ring了:
有两种方法:
1.使用
QString QString::number( long n, int base = 10 ) [static]
如:
long a = 63;
QString s = QString::number(a, 10); // s == "63"
QString t = QString::number(a, 16).toUpper(); // t == "3F"
2.使用
long a = 63;
QString s = QString("%1").arg(a);
这个其实网上有很多资料,但是他们并没有说明白我们怎么把数组间接的改编成字符串,按照这个方法无论给我什么数据我都可以以字符串的形式输出
pain ter->drawtex t(横坐标,纵坐标,字符串变量(如上面的s,t));
其实我是因为项目需要才这么写的,因为接口发来数据我要选择性的进行把数据输出,而不建立数组的话我就没有可选择的数据进行输出,而且要是不这么做的话就要自己建立数据库,所谓的数据库就是要把所有可能出现的数据全部以字符串的形式写在程序里,因为paint er->drawtex t(横坐标,纵坐标,字符串变量(如上面的s,t));是要现成的字符串的,这样写的话程序明显的就复杂很多了而且呆板,但根据我写的方法明显就简单多了。希望能帮助到碰到和我一样问题的朋友,或许还有别的简单的方法,慢慢探索了。
QT字符转数据
把QStrin g转换为 double类型
方法1.QString str="123.45";
doubleDoubl e(); //val=123.45
方法2.很适合科学计数法形式转换
bool ok;
doubled;
d=QString("1234.56e-02").toDoubl e(&ok); //ok=true;d;12.3456.
把QStrin g转换为fl oat形
1.QString str="123.45";
float Float(); //d=123.45
2.QString str="R2D2";
bool ok;
float Float(&ok); //转换是被时返回0.0,ok=false;
把QStrin g形转换为整形
1.转换为十进制整形
注意:基数默认为10。当基数为10时,并且基数必须在2到36之
间。如果基数为0,若字符串是以0x开头的就会转换为16进制,若以0开头就转换为八进制,否则就转换为十进制。
Qstring str="FF";
bool ok;
int Int(&ok,10); //dec=255 ; ok=rue
int hex =Int(&ok,16); //hex=255;ok=true;
3.常整形转换为Q string形
long a =63;
QString str=QString::number(a,16); //str="3f";
QString str=QString::number(a,16).toUpper(); //str="3F";
Qstring转换char*问题!
方法一:
QString qstr("hello,word");
const char * p = Local8Bit().data();
方法二:
const char *p = StdSt ring().data();
转换过来的是常量
把当前时间转化为QStr
publicQDateTi me qdate = QDateTi me.current DateTi me();
datetim e = Strin g("yyyy年MM月dd日dd ddhh:mm:ss");
如果不是QTi me和QDa te类比如说:通过TCP/IP接收到的c har unsigne d char 类等如何转换为QStrin g类
QString Time2St ring( DWORD dwTime)
{
char cTime[50] = {0};
memset(cTime,0,50);
strftim e(cTime,32,"%Y-%m-%d %H:%M:%S",localti me(&time_t(dwTime)));
数组转换成字符串returnQString(cTime);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论