2015-04-03 1 views
1

Я использую Anaconda с Python 2.7 в среде Spyder. При заговоре с пистолетом окно скрывается за всеми моими другими открытыми окнами вместо того, чтобы появляться впереди. Как мне заставить фигуру предстать перед всеми другими открытыми окнами?Есть окна Pyplot как самое верхнее окно в Windows 7

Matplotlib Бэкэнд: Qt4Agg

+0

Мне тоже понравилось бы, но, насколько я читал, это вещь для пиплета и не может быть сильно изменена. Но мне бы хотелось, чтобы меня показывали иначе ... – Roberto

+0

Это зависит от используемого вами блейд-сервера pyplot/matplotlib; не могли бы вы добавить это к своему вопросу? ('import matplotlib; matplotlib.get_backend()' сообщает вам, какой.) У большинства есть функция для этого; но если все остальное не удается, вы всегда можете использовать модуль [PyWin32] (http://stackoverflow.com/a/1025331/1881610) и вызывать [SetForegroundWindow] (https://msdn.microsoft.com/en-us/ библиотека/windows/desktop/ms633539% 28v = vs.85% 29.aspx) в окне графика. – Phillip

+0

Я использую Qt4Agg в качестве бэкэнд. –

ответ

4

(Spyder DEV здесь) Единственное бэкенд, что есть эта функция является TkAgg один. Код, отправленный @valentin в его/ее ответе, должен работать при использовании этого бэкэнд.

Все остальные бэкэнды пропускают эту возможность. Это довольно известное ограничение Matplotlib в течение некоторого времени, как видно из этого Github issue.

3

Вы можете попробовать что-то вроде:

fig = plt.figure() 
plt.show() 

fig.canvas.manager.window.activateWindow() 
fig.canvas.manager.window.raise_() 

Но желаемое поведение зависит бэкенд. На Tkinter:

fm = plt.get_current_fig_manager() 
#bring to front 
fm.window.attributes('-topmost', 1) 
#allow other windows to cover 
fm.window.attributes('-topmost', 0) 
+0

Первый не работает с базой данных Qt4Agg. –

+0

Первый способ действительно работал для меня на Mac OS с Python3.5 и SpyderPrefs, установленными на 'Qt4Agg'. Spyder 2.3.8, Python ** 3.5.1 ** 64 бит, Qt 4.8.7, PyQt4 (API v2) 4.11.4 на Дарвине – Demis