目录
Qt入门之utf8与unicode转换
QSting, QChar, char等的转换
------------------------------------------
引用:
Qt C++判断数据类型
Qt C++判断数据类型_ken2232的博客-CSDN博客
Qt 数据类型
https://blog.csdn.net/ken2232/article/details/131285837
Qt 中的 强制类型转换 ,及:qvariant_cast ,qobject_cast
https://blog.csdn.net/ken2232/article/details/131285037
Qt 数据类型转换 汇总 (**)
https://blog.csdn.net/ken2232/article/details/131285826
Qt 5 官方手册摘要:QString Class
https://blog.csdn.net/ken2232/article/details/131286420
https://download.qt.io/archive/qt/
------------------------------------------
摘要:
1. number()函数
int 转 QString
int a=10;
QString b;
b=QString::number(a) //The base is 10 by default
int float转QString
变量a为int型或者float,double。10和16为进制,toUpper是大写
long a = 63;
QString s = QString::number(a, 10); // s == "63"
QString t = QString::number(a, 16).toUpper(); // t == "3F"
官方手册摘录:
QString &QString::setNum(int n, int base = 10)
Sets the string to the printed value of n in the specified base, and returns a reference to the string.
The base is 10 by default and must be between 2 and 36. For bases other than 10, n is treated as an unsigned integer.
QString str;
str.setNum(1234); // str == "1234"
The formatting always uses QLocale::C, i.e., English/UnitedStates. To get a localized string representation of a number, use QLocale::toString() with the appropriate locale.
See also number().
//
[static] QString QString::number(uint n, int base = 10)
This is an overloaded function.
[static] QString QString::number(ulong n, int base = 10)
This is an overloaded function.
2. toX函数
QString 转int
QString a="120"
int b;
b=a.toInt();
b=a.toUInt();
=========================
QSting, QChar, char等的转换
1,QChar 转换char:
char QChar::toLatin1();
char QChar::toAscii();
2,Char转QChar:
QChar(char ch);
3,QString 转char*:
QString str;
char *ch;
QByteArray ba=str.toLatin1();
ch = ba.data();
4,char *转QString:
char *c_str = "hellow";
QString str=QString(QLatin1String(c_str));
5,QString 转QChar*:
QString str = "hellow";
QChar *char = new QChar[10];
char = str.data();
6,QChar 转QString: QString(QChar ch);
7,QString转数字:
QString::toxxx.
8,数字转QString:
QString::number(),
setNum
Qt入门之utf8与unicode转换
一、几种编码的了解
参考博客http://blog.csdn.net/polarman/article/details/1593159
二、简单的认识下QByteArray、QString
QString的根本是QChar数组,但不以\0结尾,有大小;QChar的根本是ushor (t ?)
QByteArray可以理解为Char型的动态数组,有大小,不是以\0结尾。
三、了解QByteArray、QString、char 之间的转换
QString 转 char
QString str = "string";
char *ch ;
ch = str.toLocak8Bit().data();
QByteArray转char
char *ch;
QByteArray byte;
ch = byte.data();
四、了解QString与各编码之间的关系
QString本身是unicode编码,所以我们要将储存在char * 里的字符(可能是utf8或者是GB2312、latin-1)转化为QString,就要告诉
QString之间的编码方式是什么.有一下两种方法:
1、用QString自带的函数
QString fromAscii ( const char *str, int size = -1 )
QString fromLatin1 ( const char *str, int size = -1 )
QString fromLocal8Bit ( const char *str, int size = -1 )
QString fromUtf8 ( const char *str, int size = -1 )
2、用QTextCodec
QString QTextCodec::toUnicode ( const char * chars ) const
五、显示十六进制
1、QString QString::number ( int n, int base = 10 ) // 默认 base==10,故此时 10可以省略
用法:QString::number(unidata[i].unicode(),16);
2、QByteArray toHex () const
例子:
utf8转unicode
这里打开文件只是当时调试用的,无关紧要.
void MessageForm::sendMessage()
{
QFile file(filename);
QTextCodec *codec = QTextCodec::codecForName("UTF8");
QString strout;
if ( file.open(QIODevice::WriteOnly) )
{
QTextStream ts(&file);
QString strdata = displayWindow->toPlainText();
QString unidata = codec->toUnicode(strdata.toUtf8().data());
for (int i=0; i<unidata.length(); ++i)
{
ushort num = unidata[i].unicode();
if (num < 255)
strout += "00";
strout += QString::number(num,16);
}
ts << strout;
}
file.close();
}
Qt数据类型转换大全
Qt数据类型转换大全_qt 类型转换_宗而研之的博客-CSDN博客
Qt 常见的几种数据类型转换
https://www.codetd.com/article/6502169
double/float size = 2.3334524;
QString str = QString::number(size, 'f', 2);
其中f代表非科学计数法格式,2代表小数点后两位。
char * 与 const char *的转换
char *ch1="hello11";
const char *ch2="hello22";
ch2 = ch1;//不报错,但有警告
ch1 = (char *)ch2;
char 转换为 QString
其实方法有很多中,我用的是:
char a='b';
QString str;
str=QString(a);
QString 转换为 char
方法也用很多中
QString str="abc";
char *ch;
ch = str.toLatin1.data();
QByteArray 转换为 char *
char *ch;//不要定义成ch[n];
QByteArray byte;
ch = byte.data();
char * 转换为 QByteArray
char *ch;
QByteArray byte;
byte = QByteArray(ch);
QString 转换为 QByteArray
QByteArray byte;
QString string;
byte = string.toAscii();
QByteArray 转换为 QString
QByteArray byte;
QString string;
string = QString(byte);
这里再对这俩中类型的输出总结一下:
qDebug()<<"print";
qDebug()<<tr("print");
qDebug()<<ch;(ch 为char类型)
qDebug()<<tr(ch);
qDebug()<<byteArray;(byteArray是QByteArray类型)
qDebug()<<tr(byteArray);
qDebug()<<str;(str 为Qstring类型)
但是qDebug()<<tr(str);是不可以的,要想用tr()函数输出QString类型的字符则要如下:
qDebug()<<tr(str.toLatin1);
int 转 QString
int a=10;
QString b;
b=QString::number(a)
QString 转int
QString a="120"
int b;
b=a.toInt()
————————————————
版权声明:本文为CSDN博主「liyuxia_1991」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iamplane/article/details/78319647
转载自blog.csdn.net/weixin_42288671/article/details/81945994
====================
猜你喜欢
https://www.codetd.com/article/2932884
Qt中的数据类型的转换,16进制,10进制,QString,QByteArry的转化
Qt 基本数据类型转换(int,float,double,datetime,string)
QT应用编程: Qt数据类型和(ActiveX)COM接口数据类型对应关系