如何禁用matplotlib

时间:2017-07-17 02:26:08

标签: matplotlib

我使用matplotlib创建图形窗口,但我不希望用户手动关闭它。有没有办法禁用右上角的关闭按钮?见screenshot

1 个答案:

答案 0 :(得分:3)

解决方案取决于使用的后端。

PyQt的

对于PyQt后端,您可以执行以下操作:

import matplotlib
# make sure Qt backend is used
matplotlib.use("Qt4Agg")
from PyQt4 import QtCore  
import matplotlib.pyplot as plt

# create a figure and some subplots
fig, ax = plt.subplots(figsize=(4,2))
ax.plot([2,3,5,1])
fig.tight_layout()

win = plt.gcf().canvas.manager.window
win.setWindowFlags(win.windowFlags() | QtCore.Qt.CustomizeWindowHint)
win.setWindowFlags(win.windowFlags() & ~QtCore.Qt.WindowCloseButtonHint)
plt.show()

这将禁用关闭按钮(不隐藏它)。

enter image description here

Tk的

我不确定Tk是否能够控制关闭按钮。但是可能的是绘制一个完全没有框架的窗口。

import matplotlib
# make sure Tk backend is used
matplotlib.use("TkAgg")  
import matplotlib.pyplot as plt

# create a figure and some subplots
fig, ax = plt.subplots(figsize=(4,2))
ax.plot([2,3,5,1])
fig.tight_layout()

win = plt.gcf().canvas.manager.window
win.overrideredirect(1) # draws a completely frameless window

plt.show()