Я пишу приложение на Python с графическим интерфейсом Tkinter. Он прослушивает события клавиатуры и мыши, поэтому он должен иметь фокус. Когда он запускается с терминала в Ubuntu, работает следующий код:
from Tkinter import *
root = Tk()
root.focus_force()
def key(event):
print "pressed", event.char
def callback(event):
print "clicked at", event.x, event.y
frame = Frame(root, width=100, height=100)
frame.bind("<Key>", key)
frame.bind("<Button-1>", callback)
frame.pack()
frame.focus_force()
root.mainloop()
Однако при запуске с терминала в Mac OS X 10.8.4 (запас Python 2.7.2) фокус сохраняется эмулятором терминала до тех пор, пока пользователь не нажмет на него окно. Кто-нибудь знает об обходном пути для этого?