• 13983阅读
  • 10回复

[共享]QT/E4.5.2:中文输入法Murphytalk-0.05 更新软键盘及触摸屏支持(持续更新) [复制链接]

上一主题 下一主题
离线xiaobinl989
 

只看楼主 倒序阅读 楼主  发表于: 2010-11-15
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2012-01-12) —
前段时间,发布了Murphytalk-0.05之后,有不少朋友联络了我。在此先感谢大家的支持。在此之余,大家普遍提出缺少一个软键盘,来进行触摸屏输入。
加之最近几天课程不是很紧,外加上一个项目已经接近尾声,我找了一个周末写出了这个补丁版本。
由于qpe版本中的软键盘实在太老,难于实用,加之移植困难,我索性写了一个全新的软键盘,经过一番折腾,这个东西总算是拿得上台面了。软键盘一共有81个键,但是由于我的小屏幕只有240*320,81个键有点局促,所以我发布的这个版本中,重新排布了软键盘,减少了一些功能键。如果您能拥有更大的屏幕,可以修改源代码中的mainForm类的构造函数来修改键盘的布局,这并不困难。Tab键进行中英文切换;按一下Shift键盘就会更新键盘按键,你可以看见每个键的第二键值;Caps键,可以切换英文输入下的键盘字母大小写。另外软键盘是悬浮的,您可以随意的拖动和改变大小。
在上一个版本中,输入显示窗口缺少对鼠标操作的支持。在这一版上,输入显示窗口不仅可以点选切换中英文,还可以选择打开关闭软键盘,对输入信息进行选择。显示窗口也是悬浮的,可以随意拖动。
具体的情况,你移植好后就能看见了,试一试吧,有问题或者BUG,尽管反馈给我。
下面来说明一下移植过程。
这一次的移植同前一版本没有任何区别,只是增加了几个文件,但是请务必重新进行移植,因为库文件和很多头文件都改过了。具体的情况请看在源码包中,我修改过的ReadMe.doc。

11月15日再次更新:
上次更新后,又有朋友反映了一些小BUG。。。(虽然有BUG是很烦人的,但是还是谢谢大家的支持。)
有BUG就要解决,这个周末,解决了现在了解到的一些BUG。
例如:软键盘的按键重复输入问题和回车无法传给窗口的确定按钮等。
另外的,我顺便重新调整了软键盘的按键的实现,新增加了两个变量来增加软键盘的仿真度。
timeID=startTimer(300);
这个参数值我设置为300,修改这个数值,就可以改变按住一个按键后多长时间会进入连续输入模式。
timeID_2=startTimer(50);
这个参数我设置为50,修改这个数值,就可以改变在连续输入模式下,软键盘连续输入的时间间隔。
这两个参数根据您的需求来调整。
移植过程没有变化,相对上一次更新也没有增加文件,移植过程请参考源代码中ReadMe.doc

下载地址
http://www.qkevin.com/archives/192
[ 此帖被xiaobinl989在2010-11-15 20:48重新编辑 ]
有斗志的小笔是无敌的。
离线mojian

只看该作者 1楼 发表于: 2011-01-14
x11下可以成功执行吗?我的不可以啊 undefinedreferenceto`QWSServer::setCurrentInputMethod(QWSInputMethod*)'

x86下也不成功啊
undefined reference to `QDomDocument::QDomDocument(QString const&)
undefined reference to `QDomElement::QDomElement()'
undefined reference to `QDomNode::~QDomNode()'
离线mojian

只看该作者 2楼 发表于: 2011-01-14
arm版本的和x86的一样错误啊
离线xiaobinl989

只看该作者 3楼 发表于: 2011-04-15
X11不可执行
有斗志的小笔是无敌的。
离线wutianzhi

只看该作者 4楼 发表于: 2011-12-09
这个移植的输入法涉及到QWSInputMethod类 这个类是针对qte的 所有本地不能运行 只能在qte下运行
离线woshizy123
只看该作者 5楼 发表于: 2012-01-11
您好。在用x86编译你这个程序的时候出现“algo.h”找不到,怎么回事
离线plmmlp09

只看该作者 6楼 发表于: 2012-08-06
x86下面好像缺少qwindowsystem_qws.h和QWSInputMethod,无法编译,看来只能在ARM下用了
离线boymaster

只看该作者 7楼 发表于: 2012-08-06
其实在QT上写输入法很简单,更多时候是键盘布局、字库的问题

向控件提交内容在QWSInputMethod基类里面已经提供了现成的函数sendCommitString

现在X11或者windows上模拟,可以通过QObject继承,不过仅限于布局、逻辑处理等,sendCommitString函数无法实现
离线kanger
只看该作者 8楼 发表于: 2012-08-10
厉害!厉害!
离线ljm620

只看该作者 9楼 发表于: 2013-07-05
这个Murphytalk-0.05  是不是只针对qtopia?
对于不是桌面环境的,我的环境是QT/E交叉编译环境,在板子上跑,通过视频口输出QT界面到电视上,然后通过遥控器操作界面,输入法也需要通过遥控器输入。
我这个环境可以用你这个输入法吗?或者还有什么其他好的输入法?

只看该作者 10楼 发表于: 2013-07-05
你试一下不就知道了?

不过我肯定的告诉你支持QT/E,因为我们都在用了。
快速回复
限100 字节
 
上一个 下一个