请问大神如何将Qstring转化为一个char? 20
请问大神如何将Qstring转化为一个char?不是char*,也不是char[],就是一个char界面中从文本框中获得的数据类型为QString就是这个函数ui->li...
请问大神如何将Qstring转化为一个char? 不是char*,也不是char[],就是一个char
界面中从文本框中获得的数据类型为QString 就是这个函数ui->lineEdit_3->text()
我本意是这样的:从文本框中输入一个字符比如a,如何把这个字符赋值给一个char型的变量呢?
直接赋值就显示错误:cannot convert 'QString' to 'char' in initialization
刚学两天,请大神指教。
用的是qt creator,我尝试着用ui->lineEdit_3->text().toInt()转换成int型,然后再强制转换为char,但是却是只油输入ascii码才显示对应的字符。我想的是输入一个字符就把这个字符赋值给一个char并显示这个字符。。 展开
界面中从文本框中获得的数据类型为QString 就是这个函数ui->lineEdit_3->text()
我本意是这样的:从文本框中输入一个字符比如a,如何把这个字符赋值给一个char型的变量呢?
直接赋值就显示错误:cannot convert 'QString' to 'char' in initialization
刚学两天,请大神指教。
用的是qt creator,我尝试着用ui->lineEdit_3->text().toInt()转换成int型,然后再强制转换为char,但是却是只油输入ascii码才显示对应的字符。我想的是输入一个字符就把这个字符赋值给一个char并显示这个字符。。 展开
展开全部
相互转换,参考示例如下:
1.从QString转换为char *
要实现把一个QString转换为char *,一般遵循这样的步骤:
第一步,对该QString对象调用QString的toLatin1()方法,以获得该字符串的latin1值。
注意toLatin1()的原型如下:QByteArray QString::toLatin1 () const
它将返回一个QByteArray。
示例:
QString qstr = "convert"
QByteArray ba = qstr.toLatin1();
第二步,对第一步得到的QByteArray对象调用data()方法,以获得指向存储于这个数组中数据的指针。
示例:
const char *cstr = ba.data();
完整的一个控制台程序如下:
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QString qstr = "convert";
QByteArray ba = qstr.toLatin1();
const char *cstr = ba.data();
printf("cstr: %s", cstr); //输出显示
return app.exec();
}
当然也有其他方法,基本的差异在于使用toLatin1()还是使用QString的toStdString方法,或者是QString的.toLocal8Bit()方法,后续步骤不变。大家可以自行试验。
2.把char*转换为QString。
最为方便的做法是以一个QLatin1String对象作为参数,来调用QString的构造函数。
示例:
const char *cstr;
QString qstr= QString(QLatin1String(cstr));
1.从QString转换为char *
要实现把一个QString转换为char *,一般遵循这样的步骤:
第一步,对该QString对象调用QString的toLatin1()方法,以获得该字符串的latin1值。
注意toLatin1()的原型如下:QByteArray QString::toLatin1 () const
它将返回一个QByteArray。
示例:
QString qstr = "convert"
QByteArray ba = qstr.toLatin1();
第二步,对第一步得到的QByteArray对象调用data()方法,以获得指向存储于这个数组中数据的指针。
示例:
const char *cstr = ba.data();
完整的一个控制台程序如下:
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QString qstr = "convert";
QByteArray ba = qstr.toLatin1();
const char *cstr = ba.data();
printf("cstr: %s", cstr); //输出显示
return app.exec();
}
当然也有其他方法,基本的差异在于使用toLatin1()还是使用QString的toStdString方法,或者是QString的.toLocal8Bit()方法,后续步骤不变。大家可以自行试验。
2.把char*转换为QString。
最为方便的做法是以一个QLatin1String对象作为参数,来调用QString的构造函数。
示例:
const char *cstr;
QString qstr= QString(QLatin1String(cstr));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询