【已解决】c++ qt解决setText乱码问题
·
问题背景
想让控件setText显示的中文不要乱码,结果就是个乱码。
问题解决方案
看了之前有一个大佬写的文章,结果发现,加上这四行代码
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
例如
#include "testxml.h"
#include <QTextCodec>
using namespace std;
testXml::testXml(QWidget *parent, Qt::WFlags flags)
: QWidget(parent, flags)
{
ui.setupUi(this);
//目标很简单,将你好,显示在lineEdit
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QString name = "你好";
ui.lineEdit->setText(name);
}
如果是qt5以上,那就需要另外一种方法,代码如下:
ui.lineEdit_3->setText(QStringLiteral("测试"));
更多推荐
所有评论(0)