On 12/14/2011 12:31 PM, David Hoese wrote: > Does anyone know if using the blit method from FigureCanvasQTAgg is not > fully supported? I'm having a problem where I'm animating a plot using > the blit method and I click on/activate the window the background of the > figure disappears (axes and line stay visible). I'm not sure if this is > just me (Mac OS X Lion, Qt4 4.8.6, Matplotlib 1.1.0), but the following > code reproduces the error: >
David, It works for me on linux with mpl from git. I haven't tried to figure it out, but it is conceivable that the problem you are seeing was fixed with this: commit b624546ae60dc5878e75a32f41a160d383548b8f Author: Eric Firing <efir...@hawaii.edu> Date: Tue Oct 18 08:06:21 2011 -1000 backend_qt4agg: draw() immediately calls FigureCanvasAgg.draw() This is the latest in a series of modifications to the Qt4Agg drawing strategy going back several years. It simplifies the code and should solve the problem introduced in 6938b0025; that is, delaying the Agg draw operation until the paintEvent breaks code expecting that draw operation to have occurred immediately. The problem was reported here: http://sourceforge.net/mailarchive/message.php?msg_id=28245744 Eric > ### > from PyQt4 import QtGui,QtCore > from matplotlib.figure import Figure > from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg > from time import sleep > > app = QtGui.QApplication([" "]) > f = Figure() > c = FigureCanvasQTAgg(f) > a = f.add_subplot(111) > a.set_title("A Title") > bbox = c.copy_from_bbox(a.bbox) > lines = a.plot([1,2,3],[1,2,3]) > c.draw() > c.show() > > wait = raw_input("Press a key to continue...") > > def update(i): > a.lines[0].set_ydata([i,1,i]) > print a.bbox.bounds > c.restore_region(bbox, bbox=a.bbox) > a.draw_artist(a.lines[0]) > c.blit(a.bbox) > > sleep(1) > app.processEvents() > > for i in range(20): > update(i) > > wait = raw_input("Press a key to continue...") > ### > > To see the problem, run the code, watch the plot to make sure its > updating properly, then click on the window to put it in focus/activate > it. I'm hoping that I'm just doing something stupid and its an easy > fix. It seems to work until I click on the window (in Mac OS X Lion > Terminal the window is opened in the background and the Terminal window > stays in focus). Thanks for any help. > > -Dave > > > ------------------------------------------------------------------------------ > Cloud Computing - Latest Buzzword or a Glimpse of the Future? > This paper surveys cloud computing today: What are the benefits? > Why are businesses embracing it? What are its payoffs and pitfalls? > http://www.accelacomm.com/jaw/sdnl/114/51425149/ > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------------ Cloud Computing - Latest Buzzword or a Glimpse of the Future? This paper surveys cloud computing today: What are the benefits? Why are businesses embracing it? What are its payoffs and pitfalls? http://www.accelacomm.com/jaw/sdnl/114/51425149/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users