Resolva o problema de QString chinês truncado no qt

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:

  1. Defina QTextCodec em main.cpp
  2. 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.

Acho que você gosta

Origin blog.csdn.net/GeomasterYi/article/details/110916311
Recomendado
Clasificación