当前位置:首页 » 编程软件 » QT预编译设置编码格式

QT预编译设置编码格式

发布时间: 2023-08-19 01:33:11

A. QT控制台程序怎么输出中文字符

跟Qt关系不大,这和你源文件编码格式和编译器有关系。

可以给你个建议把上面的程序改成Qt版本的, 哈哈。步骤如下~
1 是用qtcreator
2 如果是, 检查
工具--选项--文本编辑器--行为 选项卡下的File Encodings 中,default Encoding下拉选框里没有中文编码(gbk、gb2132或gb18030等)。我这里是system

3 在程序里
int main(xxxx)
{
QApplication app(xxxx);
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));

qDebug() << QObject::tr("中文");
//记得中文用QObject::tr()包裹起来,这样就可以显示中文了。

app.exec();
}

B. qt4.6移植到qt4.7出现中文乱码

网上搜索了3~4天,概括如下:

1、使用setDefaultCodec进行设置;

qApp->setDefaultCodec( QTextCodec::codecForName("GBK") );

QLabel *label = new QLabel( tr("中文标签") );

可惜setDefaultCodec是QT3的函数,QT4已经不支持了。

2、 设置QObject的成员函数tr()的编码;

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

3、使用QString的fromLocal8Bit()函数;

QString str;

str = str.fromLocal8Bit("哈哈哈");

hello.setWindowTitle(str);

4、用QTextCodec的toUnicode方法来显示中文

QLabel hello(QObject::tr("你好").toLocal8Bit());

QTextCodec *codec = QTextCodec::codecForLocale();

QString a = codec->toUnicode("安师大手动");

以上各种都没有解决问题。

继续没有搜索这个问题,终于在一个blog中发现了真正的答案:字库问题。

“QT4下发现一个很奇怪的现象,就是对话框的Title“我是对话框”可以正确显示,而按钮就是小方块。总感觉是系统某些设置不对,而不是字符编码的问题,如果是字符编码问题,那么应该是乱码而不是小方块。忽然想到网上有提到过是字库的问题,觉得现象可以解释,标题栏和按钮文字不是同一种字体,而恰好按钮字体没有,所以是小方块,而不是乱码。

网上搜了下QT4用的默认字体,没有查到,又看了QT4的源代码,代码太多,也没有找到。

不过setFont函数引起了我的注意,在网上看到过这种方法。”

参考上面的内容,修改代码:

...

QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

QFont font("Times",12,QFont::Normal,FALSE);

app.setFont(font);

...

label.setText(QObject::tr("同一个世界,同一个梦想!"));

...

成功!显示中文正常!

这个问题的解决真是太重要了,说实话真的有点疲惫,幸好没有放弃。yeah!

后记:使用qt的designer时,发现界面还是乱码。使用qtconfig设置font为Bitstream Charter后解决乱码问题。此时,我想原来的程序是不是也OK?不料一试,果然没有乱码~Oh MyGod!

Come From:http://www.linuxdiyf.com/viewarticle.php?id=97025
另外的解决方案:

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mociml/archive/2010/04/26/5531643.aspx

热点内容
android显示html图片 发布:2025-02-04 08:35:31 浏览:789
如何查学信网账号及密码 发布:2025-02-04 08:33:55 浏览:500
linux32位jdk 发布:2025-02-04 08:33:55 浏览:245
康佳服务器连接失败是怎么回事 发布:2025-02-04 08:18:51 浏览:916
编译编译有什么 发布:2025-02-04 08:05:52 浏览:735
让外网访问内网服务器 发布:2025-02-04 08:02:20 浏览:783
奶块脚本菜地 发布:2025-02-04 07:46:35 浏览:238
条形码识别源码 发布:2025-02-04 07:45:55 浏览:457
mysql数据库数据同步 发布:2025-02-04 07:41:07 浏览:760
安卓手机下载哪个北斗地图 发布:2025-02-04 07:35:26 浏览:854