注册编码格式示例代码
#include "widget.h"
#include <QApplication>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//******************************************************************************
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) //判断Qt版本
#if _MSC_VER //判断编译器
QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
#endif
//******************************************************************************
Widget w;
w.show();
return a.exec();
}
部分宏、函数解释
QT_VERSION
:这个宏扩展了指定Qt版本号的格式0xMMNNPP (MM = major, NN = minor, PP = patch)的数值。例如,如果您使用Qt 4.1.2编译应用程序,那么QT_VERSION宏将扩展到0x040102
QT_VERSION_CHECK(5,0,0)
:将版本的主版本号、次版本号和补丁号转换为整数0xMMNNPP (MM =主版本号,NN =次版本号,PP =补丁号)。
setCodecForLocale
:这个函数主要用于设置和对本地文件系统读写时候的默认编码格式,比如通过流读取一个文件内容时的编码格式。或者通过==qDebug()==输出打印信息时的编码。
setCodecForCStrings
:这个函数主要是用在字符常量或者QByteArray构造QString对象时使用的一种编码方式.
setCodecForTr
:这个函数的作用是设置传给tr函数时的默认字符串编码,GUI设计中最常用的一种。