我正在编写一个应用程序,它必须对macosx上的系统范围的按键做出反应
因此,我找到了一些键记录器示例,这些示例应该很管用,因为所有示例都基于NSSharedApplication()和PyObjCAppHelper.runEventLoop()而我的应用程序是用wxPython编写的。你知道吗
在这里,我对https://github.com/ljos中最简单的示例进行了修改 我觉得应该有用。但事实并非如此。你知道吗
from AppKit import *
import wx
class AppDelegate(NSObject):
def applicationDidFinishLaunching_(self, aNotification):
NSEvent.addGlobalMonitorForEventsMatchingMask_handler_(NSKeyDownMask, handler)
def handler(event):
print (u"%@", event)
app = wx.App()
delegate = AppDelegate.alloc().init()
NSApp().setDelegate_(delegate)
app.MainLoop()
很明显,MainLoop()没有捕获委托的NSEvents。你知道吗
应用后=wx.应用程序()正确返回NSApp()。为什么这不管用呢?我该怎么做?你知道吗
由于没有人回答,我从不同的视角四处寻找。你知道吗
所以我发现石英模块可以用来获取键盘和鼠标事件。因此,不需要自定义循环wx.应用程序()和wx.App.MainLoop程序()没有妨碍。你知道吗
我还发现了一个名为pynput的很好的包,它只为我做了这些,从而节省了我大量的时间。Quartz相当复杂,函数和常量有很多混乱的名称。但它做得很好。你知道吗
相关问题 更多 >
编程相关推荐