【问题标题】:AttributeError : 'FigureManagerBase' object has no attribut 'window'AttributeError:“FigureManagerBase”对象没有属性“window”
【发布时间】:2020-02-13 02:42:42
【问题描述】:

我已经很好地使用了下面的 python 代码,但是当我重新安装 Anaconda python 2.7 版本时,该代码有错误。为什么会这样?

plt.subplots_adjust(top=0.9, bottom=0.05, left=0.05, right=0.95, wspace=0.55, hspace=0.2)
plt.figtext(0.5, 0.95, str(os.path.basename(self.filepath)),ha='center', color='black', weight='bold', size='small')
mngr = plt.get_current_fig_manager()
mngr.window.setGeometry(810, 30, 800, 800)
show()

Traceback (most recent call last):

  File "C:\Users\hyeyoung\Desktop\20200211MHyeyoung.py", line 4482, in onOpenImageFile
    self.ShowAFewFrames()

  File "C:\Users\hyeyoung\Desktop\20200211MHyeyoung.py", line 4509, in ShowAFewFrames
    mngr.window.setGeometry(810,30,800, 800)

AttributeError: 'FigureManagerBase' object has no attribute 'window'

--------------------------------------------------------------------------

Anaconda python ver. : 2.7
matplotlib ver. :2.2.2

please give me an answer. thx

【问题讨论】:

  • 请分享整个错误信息。你为什么使用 Python 2?
  • 另外,查看FigureManagerBase 的文档,我看不到window 属性,因此请检查。
  • 我将整个错误附加到帖子中。因为python代码是2.7版本

标签: python matplotlib window


【解决方案1】:

您假设plt.get_current_fig_manager() 返回一个具有window 属性的对象。只有在使用Qt4AggQt5Agg(或Qt4Cairo / Qt5Cairo)后端时才会出现这种情况,因为在这种情况下,图形管理器是FigureManagerQT,它是QtWidgets.QWidget 的子类Qt 小部件具有window 属性。

因此,如果您想使用该属性,请确保使用相应的后端,例如

matplotlib.use("Qt5Agg")

【讨论】:

  • 感谢您的回答。当我这样做时,它对我有用!:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2021-04-19
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
相关资源
最近更新 更多