• 7278阅读
  • 6回复

[讨论]QT按键时如何发声音 [复制链接]

上一主题 下一主题
离线sno_guo
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-29
大家好,我现在想做这样一个功能:  当键盘上的键按下 时,QT的软件就播放一个声音,如1,2,3,a,b,c 等等。


可是只有一个界面感觉还好,可以用重载一个按键事件来做,可是有很多个界面,这样应该如何做,谢谢!



离线ppdayz

只看该作者 1楼 发表于: 2012-05-29
回 楼主(sno_guo) 的帖子
用继承来做
自己定义一个qwidget,然后重载按键事件,然后其他的界面都继承于这个qwidget
离线roywillow

只看该作者 2楼 发表于: 2012-05-29
需要处理keyPress/ReleaseEvent之类的
至于播放声音么,录制好然后用QSound之类的播放,或者直接调用系统的tts引擎(比如windows下微软的SAPI.SpVoice)?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线sno_guo
只看该作者 3楼 发表于: 2012-05-29
哦,可是我的程序大部分都做好了,不想在更改。

请问 有没有办法通过插件的形式  或其他的形式 在QT事件被激发之前,在QT的检查到按键后,插入一段代码,来实现呢,谢谢了!
离线xiongyu

只看该作者 4楼 发表于: 2012-05-30
用事件过滤器处理事件, 然后判断对象名是哪个按钮, 再调用相应的发声。 代码改动应该会控制得最小。
有很多按键的情况下, 信号和槽就有点烦了, 用这个方法很方便
为自己而已努力吧... 我的博客 http://xycode.org
离线xiongyu

只看该作者 5楼 发表于: 2012-05-30
同样的, 也可以直接判断按键, 很方便滴。
为自己而已努力吧... 我的博客 http://xycode.org
离线roywillow

只看该作者 6楼 发表于: 2012-05-30
如果不想更改太多源码的话就用事件过滤器好了,给接收按键事件的QWidget安装eventFilter,之后就在这个filter中处理
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个