打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++:QT4.5.1中文乱码

C++:QT4.5.1中文乱码

[ 来源:C++技巧 | 作者:C++ | 时间:2011-12-1 | 去论坛]
    
-



开始看蔡志明等编写的《精通Qt4编程》一书,第一个例子就出现了问题,例子运行结果如下:

 

其源代码为:
#include <QtGui/QApplication>
#include <QtGui/QWidget>
#include <QtGui/QLabel>
#include <QtCore/QTextCodec>
#include <QtGui/QPushButton>
#include <QtGui/QVBoxLayout>
int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
    QWidget* pWidget = new QWidget;
    QLabel label(pWidget);
    label.setText(QObject::tr("同一个世界,同一个梦想!"));
    QPushButton* btn = new QPushButton(QObject::tr("关闭"), pWidget);
    QVBoxLayout* layout = new QVBoxLayout;
    layout->addWidget(&label);
    layout->addWidget(btn);
    pWidget->setLayout(layout);
    QObject::connect(btn, SIGNAL(clicked()), pWidget, SLOT(close()));
    pWidget->show();
    return app.exec();
}

我用vim和KDeveloper分别编辑,运行后中文显示乱码,如下图:

经过不停的查资料,终于找到解决的方法了:

方法一:

将这行代码:

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

修改为:

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

结果显示就对了!

方法二:

将这行代码:

 QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
修改为:

 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
结果就对了!

这两种方法,都是使用了utf8字符集!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PyQt4 信号和槽详解
PyQt4入门教程(2)
PyQt4入门学习笔记(一)
QT下中文字符编码的转换
Qt中文显示
QT中中文显示问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服