方法一:
#include <QApplication>
#include <QLabel>
#include <QTextCodec>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("gb18030");// Big5-ETen
QLabel *label = new QLabel;
label->setText(codec->toUnicode("<center><h1>Qt4 学习笔记</h1></center>"));
label->setWindowTitle(codec->toUnicode("徐忠明"));
label->resize(200, 50);
label->show();
return app.exec();
}
即只要使用codec->toUnicode("中文");就可以实现所以中文的编码问题,但这个存在一定的缺点,就是每一次都要写上一个codec->toUnicode();能不能更简单一点的?
方法二:
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));//为tr()这个做设置
这样就可以使用label->setText(tr("中文"));就可以,而且对项
目中所有的tr()都有效,不必考虑变量的域的问题
如:
QLabel* usrLabel = new QLabel(tr("用户名:"));
QPushButton* okBtn = new QPushButton(tr("确定"));