Qt 数据类型转换 汇总 (**)

119 篇文章 11 订阅

目录

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 数据类型转换

QT数据类型转换

QT之数据类型间转换

QT与C++数据类型转换

QT数据类型强制转换

Qt5数据类型转换

qt 数据类型

Qt数据类型

Qt 常见的几种数据类型转换

认清基本数据类型和Qt串口通信数据类型转换

QT中的数据类型

Qt中的数据类型的转换,16进制,10进制,QString,QByteArry的转化

Qt 基本数据类型转换(int,float,double,datetime,string)

QT技巧系列(11)常用数据类型转换函数代码大全

QT的基本数据类型

Qt ActiveX常用类及数据类型

序列化Qt数据类型

QT基本数据类型

QT5_数据类型转化

QT应用编程: Qt数据类型和(ActiveX)COM接口数据类型对应关系

QT 类型转换

Qt动态类型转换

Qt类型转换

QT之类型转换

《Qt数据类型》--QByteArray,QString,int,hex之间的转化

QT 关于信号槽传递是宏定义数据类型

Qt之QMap自定义数据类型(Struct)

Qt信号槽传递自定义的数据类型

QT5:先导篇 数据类型

Qt 5.9.5常用数据类型&常用接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值