• 6854阅读
  • 10回复

[提问]中文显示 [复制链接]

上一主题 下一主题
离线zt449569708
 

只看楼主 倒序阅读 楼主  发表于: 2012-03-05
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
QMessageBox::warning(this,tr("警告"),tr("用户名或密码错误!"),QMessageBox::Yes);
求助:程序里面的中文显示不出来,运行程序之后显示的是乱码
我用的是Qt Creator 2.3.1   基于 Qt 4.7.4 (32 bit)
离线jdwx

只看该作者 1楼 发表于: 2012-03-05
回 楼主(zt449569708) 的帖子
Qt中使用中文,比较标准的做法是,先写英文(tr()本来就是做这个用的),最后再翻译成其它的文字(中文)。
如果就是这几个中文,也可以用:
QString QString::fromLocal8Bit ( const char * str, int size = -1 ) [static]
替换tr()
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线wb19861202
只看该作者 2楼 发表于: 2012-03-05
main 函数中添加:
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
离线xuanailian

只看该作者 3楼 发表于: 2012-03-06
楼上仁兄的应该能解决,加头文件 #include<QTextCodec>
离线青春岁月

只看该作者 4楼 发表于: 2012-03-06
2楼加3楼等于结果
go!   go!  go!  go!
离线冬之摩羯

只看该作者 5楼 发表于: 2012-03-06
还可以试试这个,在main函数里面加:                  
#include <QTextCodec>

QTextCodec *codec = QTextCodec::codecForName("System");    //获取系统编码
QTextCodec::setCodecForTr(codec);
离线xuweistudy
只看该作者 6楼 发表于: 2012-03-06
回 2楼(wb19861202) 的帖子
离线tanklei

只看该作者 7楼 发表于: 2012-05-01
回 5楼(冬之摩羯) 的帖子
谢谢,这个刚好就是C++ GUI Qt4编程第18章讲了的。

   楼主可以看看我的 ,已经成功实现了,很简单。 ,我们继续努力。俺的毕业论文就指望Qt了。

                              

   #include <QApplication>
#include <QPushButton>
#include <QTextCodec>

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   QTextCodec::setCodecForTr(QTextCodec::codecForName("System"));
   QPushButton *button =new QPushButton(QObject::tr("离开"));
   QObject::connect(button, SIGNAL(clicked()),&app, SLOT(quit()));
   button->show();
   return app.exec();
}

离线tanklei

只看该作者 8楼 发表于: 2012-05-01
回 5楼(冬之摩羯) 的帖子
问一下,获取的系统编码就是GB18030-0吗?为什么不能直接用"GB18030-0"?
离线gerryleeke

只看该作者 9楼 发表于: 2012-05-01
回 1楼(jdwx) 的帖子
我想问一下如何翻译?
我之前就是在为显示中文的问题困惑,然后上网查了很多,都是建议说tr(“English”),然后再翻译成中文。但是有没说如何翻译。
然后又去找如何翻译,但看起来不太懂,一大篇的,感觉很麻烦。。。
离线jdwx

只看该作者 10楼 发表于: 2012-05-01
回 9楼(gerryleeke) 的帖子
下一本Qt的书(C++ GUI Qt4),里面有详细的说明,这个要很多步骤的。
一时半会说不清。
简单点说:Qt提供了几个用于国际化的工具,翻译就靠它们了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个