QT中出现乱码

应用程序开头如下:


#include"QWDCurrentView.h"

#include<QtGui/QApplication>


intmain(intargc,char** argv)

{

QApplicationapp(argc,argv);

MyMainWidgetw;

w.show();

app.exec();

return0;

}


在该应用程序中的某一处创建表格:

MyMainWidget::MyMainWidget(QWidget *parent) :

QWidget(parent)

{

setGeometry(100,100,800,480);

setMinimumSize(800,480);

setMaximumSize(800,480);

m_widget= newWidget(this);

m_widget->setGeometry(100,30,600,420);


QStringListrowHeader;

rowHeader.append("电流值");

rowHeader.append("电流角度");

rowHeader.append("电压值");

rowHeader.append("电压角度");


QStringListcolHeader;

colHeader.append("A相");

colHeader.append("B相");

colHeader.append("C相");

m_widget->SetTableRowsAndColnums(rowHeader.size(),colHeader.size());


for(inti = 0; i < rowHeader.size(); i++)

{

for(intj = 0; j < colHeader.size(); j++)

{

QTableWidgetItem* item = newQTableWidgetItem("xian");

m_widget->SetItem(i,j,item);

}

}


m_widget->SetRowLabel(rowHeader);

m_widget->SetColLabel(colHeader);

}


程序运行后发现所有的中文部分全部是乱码,后将代码改为:

在应用程序开头处设置使用UNICODE码,也就是GB2312编码方式:

#include"QWDCurrentView.h"

#include<QtGui/QApplication>

#include <QtCore/QTextCodec>


intmain(intargc,char** argv)

{

QApplicationapp(argc,argv);

QTextCodec*codec = QTextCodec::codecForName("GB2312");


QTextCodec::setCodecForLocale(codec);

QTextCodec::setCodecForCStrings(codec);

QTextCodec::setCodecForTr(codec);


MyMainWidgetw;

w.show();

app.exec();

return0;

}

运行成功。

你可能感兴趣的:(中文显示为乱码,QT中出现乱码)