解决Qt程序在Linux下无法输入中文的办法

解决Qt程序在Linux下无法输入中文的办法

转载至 http://blog.csdn.net/gamesdev/article/details/31743587 彩阳的文章

一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行。不仅是Qt制作的应用程序,就连Qt Creator都无法支持。后面看了一些资料,了解了Qt应用程序的方法,这里和大家分享一下。


写一个bash脚本,内容如下:
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #!/bin/sh  
  2. cd YourBinaryDirectory  
  3. export QT_IM_MODULE=iBus  
  4. ./YourProjectBinary  
如果想让Qt Creator也能输入中文,那么可以这么写:
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #!/bin/sh  
  2. cd ~/Develop/Qt5.3/Tools/QtCreator/bin  
  3. export QT_IM_MODULE=iBus  
  4. ./qtcreator  

效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux Qt 作为一个跨平台的应用程序开发框架,是非常强大的。然而,Qt中文输入上确实存在一些问题。 首先,Qt 没有默认支持中文输入的方法。这就意味着,如果想在 Linux 上使用 Qt 进行中文输入,就需要借助第三方输入法软件的支持。常见的中文输入法包括 fcitx、ibus 等,用户在安装 Qt 应用程序时就需要同时安装并启用它们。 然而,即使安装了中文输入法,Qt 应用程序输入中文时,也可能遇到中英文混输的问题。这是因为 Qt 有一个 inputMethodHints 属性,它默认是 Qt.ImhNone,即不使用任何输入提示。如果要在 Qt 中实现中文输入,需要将该属性设置为 Qt.ImhPreferLowercase 或 Qt.ImhPreferUppercase,才能正确的响应各种输入法的输入提示。 总之,要在 Linux Qt 环境下实现中文输入,需要注意安装和启用中文输入法,同时在代码中正确设置 inputMethodHints 属性。如果以上方法都不能解决问题,那么可能就需要查看 Qt输入法软件的版本之间是否存在兼容问题。 ### 回答2: Linux下使用Qt编写的程序默认无法输入中文,这是因为Qt框架默认使用的是英文键盘映射表,无法正确识别中文输入法所对应的键盘事件。但是,用户可以通过修改Qt输入模式的方法来实现中文输入。 一种常见的方法是采用IBus输入法框架,该框架支持在Qt程序输入中文。用户需要在系统中安装IBus,并将其设置为默认输入法。然后,在Qt程序中调用IBus接口,这样就可以在程序输入中文。 另一种方法是使用fcitx输入法框架,该框架也支持在Qt程序输入中文。用户同样需要在系统中安装fcitx,并将其设置为默认输入法。然后,在Qt程序中调用fcitx接口,实现中文输入。 总的来说,要在Linux上使用Qt编写的程序输入中文,用户需要采取额外的措施。通过使用第三方输入法框架,用户可以在程序中顺畅地输入中文,提高工作效率。 ### 回答3: Linux系统和QT库原生是支持中文输入的,但是可能是因为用户没有正确配置输入法导致无法输入中文。 首先,用户需要选择合适的输入法并进行配置。常见的中文输入法有fcitx、ibus等,可以根据个人喜好选择。在安装和配置好输入法后,用户需要在QT程序中进行相关设置,以确保正确显示中文输入状态。可以在程序中设置输入法引擎,选择已经安装的输入法,并针对QT组件进行调整,比如调整键位映射、字体等。 此外,在使用QT编程时,也需要注意一些输入法相关的细节问题,如正确处理输入状态、切换输入法和输入状态事件等,以保证中文输入正常。 总之,解决QT无法输入中文的问题,需要全面考虑输入法的安装和配置,QT程序的设置和编程细节问题等多个方面,才能真正做到中文输入正常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值