• 11865阅读
  • 3回复

[提问]关于drawText绘制中文的问题(已解决) [复制链接]

上一主题 下一主题
离线youngst
 

只看楼主 倒序阅读 楼主  发表于: 2007-07-31
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
在main函数已经设置中文字编码
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
在绘图中:
用 painter->drwaText(10,10,"你好");在画布下显示的时乱码


使用painter->drawText(10,10,tr("你好")); 在画布上显示的时方框

而其他窗口上中文字显示正常,例如文件菜单:
QMenuBar* menu = menuBar();

    QPopupMenu* file = new QPopupMenu( menu );

    file->insertItem(tr("退出"), qApp, SLOT(quit()), CTRL+Key_Q);
    menu->insertItem(tr("文件"), file);
显示时正常汉字。


请问版主是什么问题,是不是编码不对,我 查了一下QT支持中文的 编码(GB18030,GB2312,GBK,UTF-8),这几个试以下,还是显示乱码或者方框
[ 此贴被XChinux在2008-07-18 11:05重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2007-08-01
    QTextCodec *codec = QTextCodec::codecForName("GBK");
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);

试试这个。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线youngst

只看该作者 2楼 发表于: 2007-08-01
版主说方法试过了 ,还是一样,drawText绘制的中文还是方框,其他窗口的中文显示正常
离线youngst

只看该作者 3楼 发表于: 2007-08-02
上面用方法是对的,我把代码移植到VC上编译运行,可以正常绘制汉字,后来又把程序移植代开发板上(linux系统),也可以正常绘制中文。
上面的问题,是在qvfb下运行,可能对绘制中文有问题!
快速回复
限100 字节
 
上一个 下一个