• 7403阅读
  • 9回复

Qt支持中文字体 [复制链接]

上一主题 下一主题
离线dzgcxy
 

只看楼主 倒序阅读 楼主  发表于: 2010-12-26
请问怎么让Qt支持中文输出,现在的好像不支持中文
离线jdwx

只看该作者 1楼 发表于: 2010-12-26
是显示中文还是读写文件?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线dzgcxy

只看该作者 2楼 发表于: 2010-12-27
用代码写的不支持中文,显示乱码
QLabel *label = new QLabel(tr("你好"));
显示为乱码
离线jdwx

只看该作者 3楼 发表于: 2010-12-27
main.cpp里加上下面四行就Ok了!
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec *codec = QTextCodec::codecForName("System");//1
    QTextCodec::setCodecForLocale(codec);//2
    QTextCodec::setCodecForCStrings(codec);//3
    QTextCodec::setCodecForTr(codec);//4
    MainWindow w;
    w.show();
    return a.exec();
}
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线freefei
只看该作者 4楼 发表于: 2010-12-28
谢谢了,我也找这个问题答案呢
离线dzgcxy

只看该作者 5楼 发表于: 2010-12-30
在windows下让显示的是UTF-8编码呢,我设置了
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");//1
    QTextCodec::setCodecForLocale(codec);//2
    QTextCodec::setCodecForCStrings(codec);//3
    QTextCodec::setCodecForTr(codec);//4
可好像还是乱码
离线jdwx

只看该作者 6楼 发表于: 2010-12-30
UTF-8只是一种编码形式,UTF-8编码的char只是储存的字符编码
关于储存的是哪个字,还要看操作系统,
你要在界面上显示中文,就要有中文的操作系统。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线pangsht
只看该作者 7楼 发表于: 2010-12-30
在main.cpp下加上这句试试:
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
在QApplication a(argc, argv);后面加
离线nana_aoe

只看该作者 8楼 发表于: 2011-01-07
回 3楼(jdwx) 的帖子
读写乱码如何处理呢,如下
void ArgConf::testWrite()
{
    QFile file("/root/test/test.ini");
    if(file.open(QIODevice::WriteOnly|QIODevice::Append))
    {
        QTextStream out(&file);
        out.setCodec("GB18030");
        out<<"你好 "<<endl;
        file.close();
    }
}
得到的test.ini 乱码,
离线XChinux

只看该作者 9楼 发表于: 2011-01-07
out << QString("你好") << endl;
要这样。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个