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;

}

運行成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章