24、PyQt 中的事件、剪贴板与拖放操作详解

PyQt 中的事件、剪贴板与拖放操作详解

1. 事件处理机制

在 PyQt 里,当一个事件传递给某个小部件时,首先会调用该小部件的 event() 方法。这个方法若成功处理事件则返回 True ,反之返回 False 。若返回 False ,PyQt 会把事件传递给小部件的父级,接着传递给父级的父级,直至有处理程序返回 True ,或者到达顶级(没有父级),此时该事件将被丢弃。

event() 方法既可以自行处理事件,也能够将任务委托给特定的事件处理程序,像 paintEvent() 或者 mousePressEvent() 这类。

当用户按下 Tab 键时,在绝大多数情况下,拥有键盘焦点的小部件的 event() 方法会调用 setFocus() 来切换到按 Tab 顺序的下一个小部件,并且返回 True ,而不会将该事件传递给任何按键处理程序。不过, QTextEdit 类会重新实现事件处理程序,以便在文本中插入实际的制表符,但也可以让它恢复到正常的焦点切换行为。

由于按键事件不会传递给按键处理程序,所以我们无法通过重新实现按键事件处理程序来阻止 Tab 键改变键盘焦点。因此,我们需要重新实现 eve

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值