急!急!急!关于中文显示的问题,请各位高手帮帮忙!多谢了,在线等待!

weixin_38051012 2019-09-19 12:34:28
想请教下,怎样能在QT3下正确显示出中文呢? 以下是我实现的方法:{...QString str = QString::fromLocal8Bit( text_name);      //text_name是指向一段中文的指针,类型为const char*...}void listButton::paintEvent(QPaintEvent* )                   //listButton是继承QPushButton的类{ ... QPainter* p =new QPainter; drawText->(x, y, w, h, str ); ...}但在界面上显示出来的确实一段乱码,显示英文却没有问题,小弟QT刚入门,请各位高手帮帮忙,指点一下,多谢了!
...全文
33 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38068013 2019-09-19
  • 打赏
  • 举报
回复
void listButton::setButtonText(QString s){s = *text;                                                                              //QString* text;}服了你了别管那么多drawText->(x, y, w, h, QString::fromLocal8Bit("中文")); 试试 好么,先一步一步来 ok?
weixin_38077297 2019-09-19
  • 打赏
  • 举报
回复
谢谢  这样是可以的 呵呵 可是我需要从外部传一个const char*类型的指针过来,然后显示这个指针指向的中文内容,该如何做呢?麻烦你指点我下,感谢!
weixin_38079250 2019-09-19
  • 打赏
  • 举报
回复
那就说明传的过程有问题而不是 drawtext时候的问题 是吧,继续往下查呗我觉得 主要 在 setButtonText你的 s = *text;   是打算做什么,能说说么?
weixin_38088709 2019-09-19
  • 打赏
  • 举报
回复
其实如果你想一个按钮上显示中文没有必要费这么大的劲吧1 用国际化 2 如果你的 listButton是间接继承QWidget或直接继承QButton的话,或者本身就是QPushButton或QButton,根本就不用继承用button->setText(QString::fromLocal8Bit("中文嘛"));
weixin_38111004 2019-09-19
  • 打赏
  • 举报
回复
是这样的  因为要从一个文件(是一个列表)中读出一行一行的中文放到一个链表里面,然后显示出来, 所以我写了一个读文件的函数,由于对QT不熟,所以这个读函数是用C写的,返回的是指向中文的一个指针, text就是这个指针. 不知道是不是因为C代码的关系导致显示不正常.
weixin_38112462 2019-09-19
  • 打赏
  • 举报
回复
跟qt没有关系了你看void listButton::setButtonText(QString s){s = *text;                                                                              //QString* text;}void listButton::paintEvent(QPaintEvent* )                   //listButton是继承QPushButton的类{ ... QPainter* p =new QPainter; drawText->(x, y, w, h, QString::fromLocal8Bit(*text)); ...}你觉得 这里的 s = *text;    就是你drawText->(x, y, w, h, QString::fromLocal8Bit(*text)); 里面的*text吗?????!!!!!!!!!
weixin_38117299 2019-09-19
  • 打赏
  • 举报
回复
问题已经解决,  感谢浪漫天使的帮助, 解决方法是我在QT的运行环境下,   export LANG=zh_CN.UTF-8, 就可以正确显示中文了
weixin_38053335 2019-09-19
  • 打赏
  • 举报
回复
这样试试:drawText->(x, y, w, h, str.toUtf8 ());
weixin_38061090 2019-09-19
  • 打赏
  • 举报
回复
谢谢你的回复,我现在正在尝试。
weixin_38061328 2019-09-19
  • 打赏
  • 举报
回复
好像QString没有toUtf8()这个成员函数啊,我编译报错。
weixin_38062043 2019-09-19
  • 打赏
  • 举报
回复
void Form1::paintEvent( QPaintEvent *e ){        QPainter painter(this);        painter.drawText(10,100,QString::fromLocal8Bit("你好马"));}这样不行么?
weixin_38062058 2019-09-19
  • 打赏
  • 举报
回复
我试试
weixin_38064966 2019-09-19
  • 打赏
  • 举报
回复
如何?
weixin_38066085 2019-09-19
  • 打赏
  • 举报
回复
还是不行,我的做法是:{...listButton->setButtonText( text_name );                       //text_name是指向一段中文的指针,类型为const char*...}void listButton::setButtonText(QString s){s = *text;                                                                              //QString* text;}void listButton::paintEvent(QPaintEvent* )                   //listButton是继承QPushButton的类{ ... QPainter* p =new QPainter; drawText->(x, y, w, h, QString::fromLocal8Bit(*text)); ...}是否是类型不匹配的问题呢?

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧