首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt程序中部分地方支持汉语,部分地方不支持

2012-06-21 
Qt程序中部分地方支持中文,部分地方不支持在程序中的main函数里设置了:C/C++ codeint main(int argc, char

Qt程序中部分地方支持中文,部分地方不支持
在程序中的main函数里设置了:

C/C++ code
int main(int argc, char *argv[]){    QApplication a(argc, argv);    QTextCodec *codec = QTextCodec::codecForName("utf-8");    QTextCodec::setCodecForLocale(codec);    QTextCodec::setCodecForCStrings(codec);    QTextCodec::setCodecForTr(codec);    MainWindow w;   //我自己写的类    w.setWindowTitle("中文"); //这里不写在tr("")中也可以正常显示,不知为何    w.show();    return a.exec();}


MainWindow类包含了一个GameWidget类实体,
在GameWidget类中的mousePressEvent函数里如果我想要
QMessageBox::about(NULL,tr("恭喜你!"),tr("恭喜白色玩家赢了!\n请退出"));
就是乱码

实在迷惑

[解决办法]
尝试过把utf8换成gbk没?
[解决办法]
QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));

试试这种写法
[解决办法]
要把中文字体库包含进来,Qt的安装目录下的这个目录plugins
C/C++ code
QApplication::addLibraryPath("./plugins");QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));  QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
[解决办法]
记得转换的QString 都用tr() 或者Q0bject::tr
[解决办法]
http://wangningmei.is-programmer.com/posts/32988.html

热点排行