Я использую приведенный ниже код и обращаюсь к нему через "a = ScrollableWindow (fig)" -> это выполняется в al oop, поэтому ожидается создание windows при этом вызове, он создает два windows и завершается со следующим:
QGuiApplication :: font (): нет экземпляра QGuiApplication и не установлен шрифт приложения. QGuiApplication :: font (): нет экземпляра QGuiApplication и не установлен шрифт приложения.
import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt
from PyQt5 import QtWidgets
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
class ScrollableWindow(QtWidgets.QMainWindow):
def __init__(self, fig):
self.qapp = QtWidgets.QApplication([])
QtWidgets.QMainWindow.__init__(self)
self.widget = QtWidgets.QWidget()
self.setCentralWidget(self.widget)
self.widget.setLayout(QtWidgets.QVBoxLayout())
self.widget.layout().setContentsMargins(0,0,0,0)
self.widget.layout().setSpacing(0)
self.fig = fig
self.canvas = FigureCanvas(self.fig)
self.canvas.draw()
self.scroll = QtWidgets.QScrollArea(self.widget)
self.scroll.setWidget(self.canvas)
self.nav = NavigationToolbar(self.canvas, self.widget)
self.widget.layout().addWidget(self.nav)
self.widget.layout().addWidget(self.scroll)
self.show()
self.qapp.exec_()
#Main
###someCode###
#loop#
a = ScrollableWindow(fig)
#endloop#