【オリジナル】QT 4をQT 5にアップグレード

3409 ワード

2016年の最初のブログ、新しい年の新しいスタートは、この1ヶ月で別のプロジェクトに追われているため、ブログを更新する時間はほとんどありません.夜帰ってきて片付けたらもう10時過ぎです.毎晩30分ほど引き出して、一週間かけて、今日やっとQT 4の工事をQT 5に移植しました.
QTのバージョンアップにより、多くのコードに互換性がない場合があり、特に漢字のサポートは、ネット上ではQT 5の漢字に対するサポートが多いが、対象となる項目や使い方が異なり、「拿来主義」で現れるerrorを解決することはできない.すべては自分で解決しなければならない...
記録背景:移植中に最も厄介な問題、すなわちデバッグ時間が最も長いerrorが記録され、後期使用時に参考になります.
漢字...すべての源は漢字から来て、1年前に設計したプロジェクト、TCPとModbus協定の中で漢字の出現が必要なため、最終的に今日現れた問題を招いて、最も1人のプログラマー、私は最大の間違いを犯して漢字を使うので、今回のミスを覚えて、後で現れないでください.
1)QT 5はQStringによるtoAsciiのサポートをキャンセルした.
原工事のすべてのtoAsciiは、toLatin 1()に置き換えられます.
2)アップグレード後のQTCreatorが開いている場合.cまたは.hファイルの時にUTF-8に対してとても良い支持がなくて、それではあなたは苦労します:
新しいcreatorでhファイルとcファイルを再構築します.これは重要です.そうしないと、正しい関数を使っても、あなたが望んでいる漢字が得られるとは限りません.
3)QStringに漢字が含まれている場合、QByteArrayに変換する方法:
         QTextCodec *pCodec = QTextCodec::codecForName( "GBK");
    QByteArray data = pCodec->fromUnicode( strTCP );
4)  char *QString
    QTextCodec *pCodec = QTextCodec::codecForName( "GBK" );
    QString strQuery = pCodec->toUnicode(query);
      query char  *


作者:小箱时间:2016-01-01 23:13 PM场所:大连
注:本文は小箱オリジナルです.転載はブロガーに連絡してください.ご協力ありがとうございます