• 4971阅读
  • 3回复

请教高手,这程序没看懂,再是不能显示中文 [复制链接]

上一主题 下一主题
离线gpj87
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-21
— 本帖被 XChinux 执行加亮操作(2008-07-21) —
请高书帮我解读一下下面的小程序,每一句的作用是什么?我的C++比较水,但又万不得已必须要用QT,努力学习中,请高手们多多赐教。
#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();
}

再是,我在KDevelop里执行它为什么显示不出中文?中文显示为方块,已经使用文本转换了,但不知为什么显示不出。我的系统为Ubuntu。谢谢高手们了!!
离线blusherbear

只看该作者 1楼 发表于: 2008-07-21
试试。
QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
离线gpj87
只看该作者 2楼 发表于: 2008-07-21
我在函数体开头加上        QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
                          QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
汉字就可以显示了哈
离线gpj87
只看该作者 3楼 发表于: 2008-07-21
谢谢高手指点
快速回复
限100 字节
 
上一个 下一个