我正在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()
答案 0 :(得分:-1)
你可以尝试选择小图的设置以防止它被允许聚焦:
canvas2.get_tk_widget().configure(takefocus=False)