• 9929阅读
  • 14回复

[原创]Ubuntu下Qt程序运行不能显示中文 [复制链接]

上一主题 下一主题
离线dezhihuang
 

只看楼主 倒序阅读 楼主  发表于: 2014-11-12
代码如下:
  1. #include <QApplication>
  2. #include <QLabel>
  3. #include <QTextCodec>
  4. int main(int argc,char **argv)
  5. {
  6.     QApplication app(argc,argv);
  7.     
  8.     QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));
  9.     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb2312"));
  10.     QTextCodec::setCodecForTr(QTextCodec::codecForName("gb2312"));
  11.     
  12.     QLabel *label = new QLabel;
  13.     label->setText("<h2><font size=7 color=red>你好</font> <font size=7 color=green>Qt!</font></h2>\n");
  14.     label->show();
  15.     return app.exec();
  16. }
Windows下运行结果是这样的:

而在Ubuntu10.04下运行结果却是这样的:

如果把程序中的 gb2312 改成 UTF-8 在Ubuntu10.04下运行结果却是这样的:

一直不能在Ubuntu下运行显示中文,请问大家这是为什么啊?怎么解决啊?

离线realfan

只看该作者 1楼 发表于: 2014-11-12
用UTF8试试
离线dezhihuang

只看该作者 2楼 发表于: 2014-11-13
回 realfan 的帖子
realfan:用UTF8试试 (2014-11-12 15:39) 

和UTF-8没区别
离线realfan

只看该作者 3楼 发表于: 2014-11-13
回 dezhihuang 的帖子
dezhihuang:和UTF-8没区别 (2014-11-13 08:05) 

源代码是什么格式?
离线dbzhang800

只看该作者 4楼 发表于: 2014-11-13
很可能是字体问题导致的。

可以不在代码中写中文,直接在designer中写入,然后运行看看。也可以直接给widget或application设置一个系统上有的且支持中文的字体,再试试看。
离线begboy

只看该作者 5楼 发表于: 2014-11-13
dezhihuang,你好!
      建议先检查Ubuntu系统全局设置:
      1、点击左上角“系统”  --->  "系统管理" --->  “语言支持”,
      假如显示 “语言支持没有完全安装”,请联网安装;
      2、 安装完毕后,选择“汉语”栏,再点击“应用到整个系统”;
      3、“文本” 栏 也点击“应用到整个系统”。

  祝好运!
  begboy
离线yudilingluo

只看该作者 6楼 发表于: 2014-11-13
你的Qt是自己编译的吗,要是自己编译的话,注意加上fontconfig
.configure -fontconfig  看看有没有错误。
离线dezhihuang

只看该作者 7楼 发表于: 2014-11-15
回 begboy 的帖子
begboy:dezhihuang,你好!
      建议先检查Ubuntu系统全局设置:
      1、点击左上角“系统”  --->  "系统管理" --->  “语言支持”,
     & .. (2014-11-13 11:31) 

这个没问题
离线dezhihuang

只看该作者 8楼 发表于: 2014-11-15
回 dbzhang800 的帖子
dbzhang800:很可能是字体问题导致的。
可以不在代码中写中文,直接在designer中写入,然后运行看看。也可以直接给widget或application设置一个系统上有的且支持中文的字体,再试试看。 (2014-11-13 09:16) 

我是用命令编译的,没用到designer
离线dezhihuang

只看该作者 9楼 发表于: 2014-11-15
回 realfan 的帖子
realfan:源代码是什么格式? (2014-11-13 08:54) 

UTF-8,ANSI都试过,都不行
离线dbzhang800

只看该作者 10楼 发表于: 2014-11-16
回 dezhihuang 的帖子
dezhihuang:我是用命令编译的,没用到designer (2014-11-15 21:43) 

我知道,所以才让你试试。因为这种方式可以直接排除或确定 编码问题
离线begboy

只看该作者 11楼 发表于: 2014-11-17
回 dezhihuang 的帖子
dezhihuang:这个没问题 (2014-11-15 21:42)

dezhihuang,你好!
    如果真如你所讲的完善了Ubuntu系统中文支持操作的话。
那么请按照下面方式修改编程语句,已经我们测试,并成功。
   实践出真知,有图有真相:


第1步: 屏蔽原来你编写的绿色三行代码,
第2步: 增加我们添加的2行中文处理代码;
最后保存运行,具体结果见上图。

祝好运!
begboy



离线dezhihuang

只看该作者 12楼 发表于: 2014-11-19
回 begboy 的帖子
begboy:dezhihuang,你好!
    如果真如你所讲的完善了Ubuntu系统中文支持操作的话。
那么请按照下面方式修改编程语句,已经我们测试,并成功。
   实践出真知,有图有真相:
....... (2014-11-17 14:49) 

那就是我的Qt没安装好咯,能不能告诉我怎么在ubuntu上安装Qt啊?安装网上说的安装不对啊
离线begboy

只看该作者 13楼 发表于: 2014-11-21
回 dezhihuang 的帖子
dezhihuang:那就是我的Qt没安装好咯,能不能告诉我怎么在ubuntu上安装Qt啊?安装网上说的安装不对啊 (2014-11-19 11:05) 

dezhihuang,你好!
     真真不好意思!
     由于我们当时是从低版本的Ubuntu升级到10.04再升级到10.10的,
且QT是从QT3后,全新安装QT4的,大约时间在2010年;
    且目前我们相关项目如果涉及UNIX/Linux类操作系统,均主要在AIX、HP-UX和Suse;
    Ubuntu仅仅用来测试和简单编程;
    请容许我们回去查看相关硬盘备份,如若找到再向您提供。
    见谅!
    begboy
离线dezhihuang

只看该作者 14楼 发表于: 2014-11-23
回 begboy 的帖子
begboy:dezhihuang,你好!
     真真不好意思!
     由于我们当时是从低版本的Ubuntu升级到10.04再升级到10.10的,
且QT是从QT3后,全新安装QT4的,大约时间在2010年;
....... (2014-11-21 15:19) 

多谢
快速回复
限100 字节
 
上一个 下一个