我需要在我的PyQt应用程序中显示一些图表,所以我编写了这些代码。虽然它可以工作,但有时候绘制一个图表会花费很长时间,这会导致主窗口“冻结”。
我认为在另一个线程中执行可以解决这个问题。但是我应该如何做呢?或者,有没有其他方法可以以“非阻塞”方式绘制图表?
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
class MplCanvas(FigureCanvas):
def __init__(self):
self.fig = Figure()
self.axes = self.fig.add_subplot(111)
# do something...
FigureCanvas.__init__(self, self.fig)
FigureCanvas.setSizePolicy(self, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
# do something...
def draw(self):
# do something...