我的wxpython应用程序必须响应每次用户点击CTRL-C,无论应用程序框架是在顶部/可见但未聚焦/最小化/在其他窗口下等等。基本上我想知道用户使用CTRL-C组合复制了一些东西到剪贴板中-剪贴板中的其他更改(如鼠标r-click+“copy”应该被忽略),而不是把数据复制到剪贴板。这就是为什么我使用pyHook,一切似乎都很好,除了。。。“OnkeyboardEvent”中的所有代码似乎都是在CTRL-C执行其“实际工作”(将内容复制到剪贴板)之前执行的,因此每次我都有点“后退一步”:
发生了什么:
1. user hits CTRL-C
2. my "OnKeyboardEvent" code is executed
3. data is being copied to the clipboard (CTRL-C does its job)
我要做3次。在2…..之前。。。。:)
总之,代码如下:
^{pr2}$上面代码的第二个错误。。。看到“OnKeyboardEvent”过程末尾的“print clipboarditem”了吗?如果我删除它下一个命令-self.basicText.SetValue(clipboarditem)“停止工作并给出
line 23, in OnKeyboardEvent
self.basicText.SetValue(clipboarditem)
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 13075, in SetValue
return _core_.TextEntryBase_SetValue(*args, **kwargs)
TypeError: an integer is required
对我来说真是太棒了:/
我花了一段时间才弄明白,但还是做到了!在
只需将key down事件更改为key up,它就可以工作了。您的回调是在释放CTRL+C时调用的,因此剪贴板已经是正确的,因为CTRL+C已经被处理。在
(还修复了返回的回调
True
否则我会收到很多异常消息)相关问题 更多 >
编程相关推荐