QT的学习之路——QString的基础

1 篇文章 0 订阅
1 篇文章 0 订阅

      先啰嗦几句,既然是Qt的学习之路,那我们就从最原始的开始讲。

      我们很多从C++转向学Qt的人们开始遇到QString就蒙了,QString到底怎么输出,我最起码得把“Hello World”得输出吧,那我们知道Qt是对C++的扩展,如果我们知道了Char*的值,那不就可以输出数据了!哈哈..现在我们把QString类型的转化为char*.

      一.QString向char*的转换(我的代码实在类似于MainWindows.cpp的构造函数中)

            方法1:

                      QString Qstr;

                       char*    c;

                       QByteArray  byteArray=Qstr.toLatin1();

                       c=byteArray.data();

            例子:

                      QString Qstr("nihao");

                      char*    c;

                       QByteArray  byteArray=Qstr.toLatin1();

                       c=byteArray.data();

                       ui->textEdit->setText(c);//textEdit为创建的textEdit,ui你把它看成是界面的对象,界面的所有控件都通过它访问

                       结果:nihao              //在textEdit上输出“nihao”

           方法2:

                      QString Qstr;

                      string str=Qstr.toStdString();  //注意:包含在文件开始添加string库和命空间,代 码如下:                                                            

                                                                 //#iinclude<string>                

                                                                 //using namespace std;

                      const char* c=str.c_str();

           例子:

                     QString  Qstr("Hello");

                     string str=Qstr.toStdString();

                     const  char*  c=str.c_str();

                     ui->textEdit->setText(c);

                                         结果:nihao              //在textEdit上输出“nihao”

 

          方法3:

                    QString Qstr;

                    char *c;

                    c=Qstr.toLocal8Bit.data();

           例子:

                   char *c;

                   QString Qstr("nihao");

                   c=Qstr.toLocal8Bit().data();

                   ui->textEdit->setText(c);

                结果:nihao             //在textEdit上输出“nihao”

      二:char*向QString的转换

            方法1:(最便捷也是最好用的)

                                 char *c; 

                                  QString Qstr(c);

              例子:

                    char *c="nihao";

                    QString Qstr(c);

                    ui->textEdit->setText(Qstr);

                   结果:nihao                 //在textEdit上输出“nihao”

           方法2:

                  char *c;

                  QString Qstr;

                  Qstr=QString(QLatin1String(c));

           例子:

                  char *c="nihao";

                  QString Qstr;

                  Qstr=QString(QLatin1String(c));

                  ui->textEdit->setText(Qstr);

                  结果:nihao                 //在textEdit上输出“nihao”

 

三.汉字的输出

          经常会有朋友想在Qt中输入汉字后,再将汉字输出出来。可是输出后的结果很让人头疼,都是些让人看不懂的东西,那该怎么办?不多说直接解决问题!

      1.QString直接赋值汉字

          QString Qstr;

          Qstr=QString::fromUtf8("你好");

          ui->textEdit->setText(Qstr);

          结果:你好                 //在textEdit上输出“nihao”                

 

             有人就说了一看上面的代码,你这不是糊弄人嘛,直接给QString类型的输入汉字,有本事汉字给char*,让它输出。好的,看下面:      

        

         2.char*中的汉字到QString

            char* c="你好";

            QString Qstr=QString::fromUtf8(c);

            ui->textEdit->setText(Qstr);

            结果:你好                 //在textEdit上输出“nihao” 

              

 

                 网上有好多人对Qt的QString很迷惑,希望我的这篇博客能够帮到需要的人,以上所有的代码都是经过测试的,如果大家有什么问题可以留言,我们相互讨论共同成长。

         

                     

                    

 

             

                  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值