【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

Python/PHP/Perl 开发与设计
回复
头像
yq-ysy
论坛版主
帖子: 3710
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)
送出感谢: 0
接收感谢: 79 次

【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

#1

帖子 yq-ysy » 2014-05-11 21:38

正在尝试用Blender来制作有一个小游戏,可以顺利输入英文,但无法输入中文,
我不大会写程序,不知道应该如何调用系统自带的输入法用于这个游戏?

网上查了一下,发现一 片文章,《Linux 平台实现一个输入法需要的接口》
http://hi.baidu.com/widebright/item/08d ... be134b14a8
里面说:大多都是通过XIM (X Input Method)来做的……
http://www.ibm.com/developerworks/cn/li ... index.html
http://www1.kokusaika.jp/advisory/org/en/x_im.html

哪位有经验的,请指导一下……
头像
astolia
论坛版主
帖子: 3944
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 650 次

Re: 【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

#2

帖子 astolia » 2014-05-12 16:17

你的意思是让系统中已经安装的输入法能够在你程序的输入框中输入?
你那些链接是用来制作输入法的,并不符合你的需要。
不清楚你程序的GUI是用什么实现的,不过输入框只要符合X11的标准应该就没问题
X11的TextField
GTK的Text Widget之类
Qt的QTextEdit之类

pygtk的例子
http://www.pygtk.org/pygtktutorial/sec- ... ample.html
pyqt4的例子
http://jimmykuu.sinaapp.com/blog/10
头像
yq-ysy
论坛版主
帖子: 3710
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)
送出感谢: 0
接收感谢: 79 次

Re: 【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

#3

帖子 yq-ysy » 2014-05-12 18:33

astolia 写了:你的意思是让系统中已经安装的输入法能够在你程序的输入框中输入?
你那些链接是用来制作输入法的,并不符合你的需要。
不清楚你程序的GUI是用什么实现的,不过输入框只要符合X11的标准应该就没问题
X11的TextField
GTK的Text Widget之类
Qt的QTextEdit之类
感谢你来帮助。我用Blender来制作游戏,还没有深入到编程,
我也不大清楚,其应该是GUI符合X11的吧,
用Blender做的游戏,英文输入很简单,直接可以修改TEXT物体的文本(甚至不用输入框)。
但用中文就麻烦了,运行游戏时,可以呼出系统的输入法打字,但是汉字就是上不去。
而如果在用Blender制作游戏的过程中,预先输入的汉字是能正常显示的(也能被删除)。

我查询到,Pyhton有针对系统“复制/粘贴”的应用接口, http://www.blender.org/documentation/bl ... onKeyboard
所以,猜想Python是不是应该也有调用中文输入法的接口?
头像
astolia
论坛版主
帖子: 3944
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 650 次

Re: 【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

#4

帖子 astolia » 2014-05-12 21:36

输入法的问题比较复杂。底层的是XIM,gtk搞了个immodule。其他图形库一般都支持其中至少一个。比如flash,就只支持了immodule

你用的什么输入法?如果fcitx都还输入不进去的话,那blender应该就不支持XIM和gtk immodule接口了

没接触过blender的python编程,如果可以在其界面上创建一个外部图形库的控件,倒是可以实现

找到了一篇有点久远的帖子 http://blenderartists.org/forum/showthr ... Tkinter%29
这就是个通过外部控件来将输入的内容传入blender之中的例子,不过可能不太符合你的需要
头像
yq-ysy
论坛版主
帖子: 3710
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)
送出感谢: 0
接收感谢: 79 次

Re: 【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

#5

帖子 yq-ysy » 2014-05-13 9:02

astolia 写了:输入法的问题比较复杂。底层的是XIM,gtk搞了个immodule。其他图形库一般都支持其中至少一个。比如flash,就只支持了immodule
你用的什么输入法?如果fcitx都还输入不进去的话,那blender应该就不支持XIM和gtk immodule接口了
没接触过blender的python编程,如果可以在其界面上创建一个外部图形库的控件,倒是可以实现
找到了一篇有点久远的帖子 http://blenderartists.org/forum/showthr ... Tkinter%29
这就是个通过外部控件来将输入的内容传入blender之中的例子,不过可能不太符合你的需要
我用的是系统默认的 ibus / Sunpinyin 拼音输入法。
那个帖子07年的,太久远了。现在新版的Blender输入中文没问题,
只是输出游戏后,要解决如何在游戏中输入中文。
用Blender做游戏支持Python脚本,所以希望能在这里找到解决方案。
因为要输出Linux和windows两个版本的游戏,所以也希望能找到在windows下游戏调用输入法接口的方案。
头像
astolia
论坛版主
帖子: 3944
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 650 次

Re: 【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

#6

帖子 astolia » 2014-05-13 19:18

我拿那个帖子上来是说明那种思路的可行性。
当年blender编辑界面上用不了输入法,就用python接口创建一个外部图形库窗口,让人在那里面输入,再将输入的内容导入blender
现在输出游戏后用不了输入法,一样可以用python接口创建一个外部图形库窗口,让人在那里面输入,再将输入的内容导入游戏中
而gtk/qt/tk等图形库都是跨平台支持windows的,唯一的问题是外部输入窗口和你游戏本身界面外观上的协调性可能不大好处理。

还有一种思路是用现成的云输入法服务,自己实现一个游戏内的简易输入法。QQ搜狗百度等等都有云输入法API可供使用。这种方案也很简单,就是用python发发网络请求,现成的代码网上也一大堆。缺点就是要全程联网,而且输入速度也及不上上一种方案
头像
yq-ysy
论坛版主
帖子: 3710
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)
送出感谢: 0
接收感谢: 79 次

Re: 【求助】能否用Python脚本调用系统的输入法接口来实现软件的中文输入?(用于一个Blender做的游戏中)

#7

帖子 yq-ysy » 2014-05-13 21:24

astolia 写了:我拿那个帖子上来是说明那种思路的可行性。
当年blender编辑界面上用不了输入法,就用python接口创建一个外部图形库窗口,让人在那里面输入,再将输入的内容导入blender
现在输出游戏后用不了输入法,一样可以用python接口创建一个外部图形库窗口,让人在那里面输入,再将输入的内容导入游戏中
而gtk/qt/tk等图形库都是跨平台支持windows的,唯一的问题是外部输入窗口和你游戏本身界面外观上的协调性可能不大好处理。
还有一种思路是用现成的云输入法服务,自己实现一个游戏内的简易输入法。QQ搜狗百度等等都有云输入法API可供使用。这种方案也很简单,就是用python发发网络请求,现成的代码网上也一大堆。缺点就是要全程联网,而且输入速度也及不上上一种方案
哦,原来如此。谢谢指导,我再详细看看,这两种方法也许真的可行。
回复

回到 “Python/Php/Perl”