日期:2014-05-16  浏览次数:20695 次

QT数据转换
各位大虾,
                有谁知道如何把LineEdit.text()里面的16进制数转换为我想要的10进制数么?比如我输入FF字符,但是我想要的是255这个数,那位大虾知道阿?传授几招,不胜感激!我现在知道用toInt()函数可以,但是这个函数不能字符型的数据,只能转换数字型的字符,如toInt(5)输出的是5,但是如果toInt(F)他的输出就为0,不合用。

------解决方案--------------------
1.忘了具体的函数,有现成的函数将文本转换为数值,然后想要显示什么进制的数据,自己编一个!
2.如果已经得到了FF,则编写函数处理,这样的函数教科书中有!
------解决方案--------------------
int QString::toInt ( bool * ok = 0, int base = 10 ) const
返回由这个字符串转化的int值,是基于base的,默认为10并且必须在2到36之间。
如果转化发生错误,*ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则*ok被设置为真。


QString str( "FF " );
bool ok;
int hex = str.toInt( &ok, 16 ); // hex == 255, ok == TRUE
int dec = str.toInt( &ok, 10 ); // dec == 0, ok == FALSE


仅供楼主参考!
------解决方案--------------------
楼上的说的没错, QString是一个很强大的字符串类.
它的方法可以说覆盖了所有可能的字符串操作.