Python matplotlib将窗口显示为活动窗口
我正在绘制一些图形,然后使用Python matplotlib将窗口显示为活动窗口,python,matplotlib,Python,Matplotlib,我正在绘制一些图形,然后使用canvas.mpl\u connect命令与它们交互。因此,当我显示绘图时,我希望窗口从一开始就是活动的 此时,当脚本运行时,将弹出绘图,但它不是活动窗口,终端仍然是(即,如果我键入一个键,该键将写入终端,并且不会被绘图窗口解释)。我需要点击绘图窗口,使其成为活动窗口,然后才能与图形交互。如果它在第一次弹出时就已经处于活动状态,那就更好了 使用python 2.7.5和matplotlib 1.3.1在MacOSX 10.10.3上工作 编辑 我不只是需要把窗口放在
canvas.mpl\u connect
命令与它们交互。因此,当我显示绘图时,我希望窗口从一开始就是活动的
此时,当脚本运行时,将弹出绘图,但它不是活动窗口,终端仍然是(即,如果我键入一个键,该键将写入终端,并且不会被绘图窗口解释)。我需要点击绘图窗口,使其成为活动窗口,然后才能与图形交互。如果它在第一次弹出时就已经处于活动状态,那就更好了
使用python 2.7.5和matplotlib 1.3.1在MacOSX 10.10.3上工作
编辑
我不只是需要把窗口放在前面,我希望能够与窗口交互,而不必点击它。因此,如果我键入一些键,图形将响应,而不是终端。您可以设置窗口在“使用画布管理器”中显示的顺序,但它仅适用于某些图形后端。下面的示例使用了TkAgg后端,它可以工作,但相同的想法在macosx后端不起作用
import matplotlib
matplotlib.use('TkAgg')
from matplotlib import pyplot as plt
from pylab import get_current_fig_manager
fig1 = plt.figure()
fig2 = plt.figure()
fig1.canvas.manager.window.attributes('-topmost', 1)
plt.show()
图1应该显示在图2的顶部 所以,我终于找到了一个解决方案 显然,一个解决办法是导入
从AppKit导入NSApplication
并在show()之前发出:
NSApplication.sharedApplication().activateIgnoringOtherApps_389;(True)
我不确定它是做什么的,显然它只在非交互模式下工作,但这对我来说非常有效
您也可以在这里查看
这只会将窗口移到前面,但不会使其处于活动状态。啊。那样的话,我不知道。一旦你把它设置为最上面的图形,你就可以使用命令选项卡来激活它,但我不知道如何使它更加自动化。