Qstring chage char*

来源:互联网 发布:博卡软件怎么样 编辑:程序博客网 时间:2024/05/03 10:27
Qstring chage char* 
 fp = fopen("C:\\Users\\Public\\system.ini","w");  /*文本方式写入*/
     const char* cname;
   QString str= ui->lineEdit_2->text();
 // cname = ui->lineEdit_2->text().toLatin1().data();
   QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
   QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
//     QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
//     QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
   cname = str.toLocal8Bit().data();//字符串转化
 // cname = QUOTE::fromUtf8(str.toLocal8Bit().data()).toLatin1().data();
  //cname=ui->lineEdit_2->text().toLocal8Bit();
    // CString str( name.c_str() );
    // cname = (LPSTR)(LPCTSTR)st;
    //  strcpy (cname, name.c_str());//string 转c字符串
//       fprintf(stream,"%s%ld%f%c","hello world",
//       65000,3.14159,'x');
//       printf("%s",cname
//      );
     fprintf(fp,"%s",cname
    );
     fclose(fp);
 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //保证写出的文字显示不乱码 编码格式的转化
//     fp1 = fopen("C:\\Users\\Public\\widows.ini","r");  /*文本方式写入*/
情形2:Qsting chage char* 最好用  前提是main函数用的是GBK库
  char* ch;
  //  QByteArray ba = contact.toLatin1();
   // QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
 //   QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
    ch = contact.toLocal8Bit().data();//字符串转化
      trayIcon->showMessage(tr(ch),tr(""),QSystemTrayIcon::Information,2000);
  QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); //保证写出的文字显示不乱码 编码格式的转化   因为main函数中默认用 GBK转汉字所以此时应该改回为GBK
 举例2:
QString  qstr=ui->textEdit->toPlainText();
     char* ch;
       //  QByteArray ba = contact.toLatin1();
        // QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
      //   QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
         QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
         QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
         ch = qstr.toLocal8Bit().data();//字符串转化
        FILE *  fp1=fopen("./name.dat","a");
        fprintf(fp1,"%s\n",ch);
        fclose(fp1);  //这儿获取的数字最准确  获取时间列表的时间  自己加    应该写在保存之后的内容里
  QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
  //QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //保证写出的文字显示不乱码 编码格式的转化

char* chage Qstring
情形1:
 fp = fopen("C:\\Users\\Public\\system.ini","r");  /*文本方式写入  以前也是r */
//     fp = fopen("C:\\Users\\Public\\system.ini","a+");  /*文本方式写入  以前也是r */
       fp1 = fopen("C:\\Users\\Public\\widows.ini","r");  /*文本方式写入*/
       char name[50]={}; //有初始化的必要 不然开始会乱码
     fscanf(fp, "%s",name);
     // ui->lineEdit_2->setText( QString(QLatin1String(name))); //char 转
    //  ui->lineEdit_2->setText( QString(name)); //char 转
     //旁边的名字栏显示的汉字
 QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); //保证写出的文字显示不乱码 编码格式的转化
 //用GBK编的码就用gbk来解码白框里显示名字
ui->lineEdit_2->setText( QString(tr(name))); //char 转
//QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
//QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
//cname = str.toLocal8Bit().data();
//      QTextCodec *textcod = QTextCodec::codecForName("GBK");
//      QString string1 = textcod ->fromUnicode(listbox1->currentText());
//      strcpy(name,string1);
//      ui->lineEdit_2->setText( string1);
     fscanf(fp1,"%d",&mit);
//     ui->lineEdit_3->text().QString::number(mit);  //得到
      ui->lineEdit_3->setText(QString::number(mit) );
      fclose(fp);
      fclose(fp1);
       QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //弹出的对话框中显示的文字
情形2:
   QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //保证写出的文字显示不乱码 编码格式的转化
           //用GBK编的码就用gbk来解码白框里显示名字
        QString  t2= QString(tr(itime1[i])); //char 转itime1[i] 为char类型
                 QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); //弹出的对话框中显示的文字


注意:
 trayIcon->showMessage(tr("我爱你"),tr(""),QSystemTrayIcon::Information,2000);  //所以 tr里面的是char* 字符串
http://www.cnblogs.com/Romi/archive/2012/03/12/2392478.html
http://www.cnblogs.com/findumars/p/4851236.html
0 0