Qt中一些常用的格式转换

转自:http://blog.csdn.net/yh_1988/article/details/7190356

用Qt经常头痛于一些格式不能通用的问题

在此记录备用


1 (20120112)QString转为Char *

QString *str;

char *a;

str="hello word ! "

a=str->toLatin1().data();


2  字符串中输入变量

char a[64];//定义时直接分配空间

int temp = 50;

sprintf(a,"the value is %04d",temp);

结果为a[]="the value is 0050\0"


以下为转自sina小洋(http://blog.sina.com.cn/s/blog_62ec29160100m7y5.html),谢谢作者整理

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()

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()

另一个

1 QString --> string

QString.toStdString();

2 string --> QString

QString::fromStdString(string)

3 QString --->int,double,char *

QString::toInt()

QString::toDouble()

QString.toStdString().c_str();

4 int double char* --->string

可以采用<sstream>里的stringstream

以int 为例,int a = 3;

stringstream ss;

string strInt;

ss<<a;

ss>>strInt;

其他两个一样。

5 int double char*装QString


lame是一种开源的音频编码库,可以将无损的音频文件格式转换为有损的MP3格式。它可以实现对音频文件的压缩,从而减小文件的大小,并保持较高的音质。 lame库是为了满足不同平台和应用程序的需求而开发的,它可以在各种操作系统上运行,并且提供了丰富的功能和选项。对于Qt录音文件格式转换,lame库可以方便地与Qt框架进行集成,提供音频文件格式转换的功能。 使用lame库进行Qt录音文件格式转换的步骤如下: 首先,需要在项目添加lame库的引用。可以通过下载lame库的源代码,并将其编译为静态库或共享库,然后将库文件导入到Qt项目。 接下来,在Qt程序使用lame库的API来进行录音文件格式转换。通过调用合适的函数,可以将输入的无损音频文件转换为MP3格式,并保存为新的文件。 在进行格式转换时,可以通过传递一些参数来控制转换的质量和性能,例如指定转换后的比特率、采样率、声道数等。这些参数可以根据具体的需求进行调整。 最后,在完成转换后,可以通过适当的方式来检查转换后的MP3文件,并进行必要的后续处理,如保存、播放或上传等操作。 总之,lame是一个功能强大的音频编码库,可以方便地集成到Qt,并实现录音文件格式的转换。通过使用lame库,可以轻松地将录音文件从无损格式转换常用的MP3格式,以满足不同的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值