Resolva o problema do chinês truncado no Qt
No Qt, o título chinês definido na interface do designer pode ser exibido normalmente.
Mas em QString, por exemplo, quando QPainter desenha Texto, se o char * recebido contiver chinês, ele geralmente exibirá caracteres truncados. Dois lugares precisam ser definidos neste momento:
- Defina QTextCodec em main.cpp
- QString usa o método estático fromLocal8Bit (char *)
para o primeiro lugar, que pode ser definido da seguinte forma em main.cpp:
#include "MainWindow.h"
#include <QApplication>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec* codec = QTextCodec::codecForName("GB2312");
QTextCodec::setCodecForLocale(codec);
MainWindow w;
w.show();
return a.exec();
}
Em segundo lugar, o seguinte método é usado no char * que contém chinês:
QString::fromLocal8Bit(char*)
No local onde QString precisa ser passado, se o chinês estiver incluído, as configurações nos dois locais acima são obrigatórias.