AttributeError: объект 'FigureManagerBase' не имеет атрибута 'window' - PullRequest
1 голос
/ 13 февраля 2020

Я хорошо использовал приведенный ниже код python, но когда я переустанавливал Anaconda python 2.7 ver., В этом коде была ошибка. Почему это произошло?

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

1 Ответ

0 голосов
/ 13 февраля 2020

Предполагается, что plt.get_current_fig_manager() возвращает объект с атрибутом window. Это будет иметь место только в случае использования Qt4Agg или Qt5Agg (или Qt4Cairo / Qt5Cairo) бэкэнда, потому что в этом случае диспетчер фигур - это FigureManagerQT, который является подклассом QtWidgets.QWidget и виджет Qt имеет атрибут window.

Следовательно, если вы хотите использовать этот атрибут, обязательно используйте соответствующий бэкэнд, например,

matplotlib.use("Qt5Agg")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...