找回密码
 立即注册
收起左侧

Qt4.8中如何设置主窗体始终接收快捷键?

3
回复
10335
查看
[复制链接]

尚未签到

来源: 2013-3-30 20:45:53 显示全部楼层 |阅读模式
1Qter豆
毕设做一个C/C++的简单IDE,编辑区使用的是QPlainTextEdit,该控件在获得焦点后按下“Ctrl+C”,“Ctrl+V”等自动接收了该快捷键,而主窗体上的“Ctrl+C”,“Ctrl+V”并没有执行。因为在主窗体上的“Ctrl+C”,Ctrl+V”对应的QAction上要执行另外的一些处理,所以想现实就算QPlainTextEdit编辑区获得了焦点,主窗体上的“Ctrl+C”,Ctrl+V”仍然有效,如何做到?

最佳答案

查看完整内容

这个没有办法的啊,同一时间只能有一个地方获得相同的快捷键,现在是textEdit获得焦点,所以是它先获取快捷键。最好也不要将Ctrl+C这样的快捷键作为他用吧。编写软件应该符合大家的使用习惯,像这样的软件的Ctrl+C都是复制编辑框里面的内容,这样才更符合写程序的规范。
回复

使用道具 举报

累计签到:1571 天
连续签到:1 天
2013-3-30 20:45:54 显示全部楼层
这个没有办法的啊,同一时间只能有一个地方获得相同的快捷键,现在是textEdit获得焦点,所以是它先获取快捷键。最好也不要将Ctrl+C这样的快捷键作为他用吧。编写软件应该符合大家的使用习惯,像这样的软件的Ctrl+C都是复制编辑框里面的内容,这样才更符合写程序的规范。
回复

使用道具 举报

尚未签到

2013-4-1 10:46:21 显示全部楼层
老师说得对,我的“Ctrl+C”,“Ctrl+V”就是主窗体上的复制和粘贴,因为在这两个Action对应的SLOT中有一些其它的处理,当按下快捷键时直接执行了QPlainTextEdit中的键盘事件,所以才发现这两个Action没有执行。我推断,现在的一些用QT做的文本编辑器,MDI是不是也会是这样的?按着这些快捷键,效果是达到了,但并没有执行主窗口上的具有相同快捷键的Action!
回复

使用道具 举报

累计签到:1571 天
连续签到:1 天
2013-4-1 12:42:48 显示全部楼层
Xiao'J 发表于 2013-4-1 10:46
老师说得对,我的“Ctrl+C”,“Ctrl+V”就是主窗体上的复制和粘贴,因为在这两个Action对应的SLOT中有一些 ...

如果你要实现这个效果,需要是在textEdit中进行重新实现这个快捷键,而不是外面。也就是自定义QTextEdit类。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了