很多文章都对qt不支持中文进行了阐述,给出好多奇奇怪怪的方法,比如:
qstring要加tr,字符串转为utf8等等,我感觉都不是很直接,还很麻烦。
其实只要修改main函数就能全部解决了。
先来看看效果:
就不用写utf-8的转换。
注意 qt4还没添加对collate的支持,所以下面都是对qt4而言的。
主要考虑了qwidget和qmainwindow两种模式,对qdialog没考虑,目前也很少用。
mainwindow的代码是:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF8"));
MainWindow w;
w.show();
return a.exec();
}
对应的widget代码是:
#include <QtGui/QApplication>
#include "widget.h"
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF8"));
Widget w;
w.show();
return a.exec();
}
以后写的时候,复制这一段就可以了。