改变焦点之间的图形画布在TkInter



我在TkInter窗口内绘制2个不同的数字。我使用TkInter,因为稍后我会添加一些按钮。仅供参考,这两个人物的尺寸不同,因为我只会和大的互动,小的留作他用。当窗口打开时,焦点总是设置在小图形上,所以我需要使用TAB切换到大图形。我尝试了许多focus()focus_set()的组合,但无论我尝试什么,它总是打开窗口,聚焦在小人物。

我能做什么?

我附上这里一个简单的代码显示我的问题。

import matplotlib
matplotlib.use('TkAgg')
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import sys
import Tkinter as tk
root = tk.Tk()
root.wm_title("Embedding in TK")
f1 = Figure(figsize=(7.5,10), dpi=100)
a1 = f1.add_subplot(111)
f2 = Figure(figsize=(7.5,5), dpi=100)
a2 = f2.add_subplot(111)
t = arange(0.0,3.0,0.01)
s = sin(2*pi*t)
a1.plot(t,s)
a2.plot(t,s)
canvas1 = FigureCanvasTkAgg(f1, master=root)
canvas2 = FigureCanvasTkAgg(f2, master=root)
canvas1.show()
canvas2.show()
canvas1.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH)
canvas2.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH)
def print_key(event):
    print 'you pressed '+event.key
cid = f1.canvas.mpl_connect('key_press_event', print_key)
#SOMETHIN MISSING HERE IN ORDER TO SET THE FOCUS ON THE BIGGER WINDOW
tk.mainloop()

你可以尝试改变小图形的设置,以防止它被允许聚焦:

canvas2.get_tk_widget().configure(takefocus=False)

最新更新