Finally I tried something but it didn't work :

Qt Code:
  1. from PyQt4.Qwt3D.ezplot import SurfacePlot
  2. from PyQt4.Qwt3D import Function
  3. from PyQt4 import Qwt3D, QtCore
  4.  
  5. from PyQt4.QtCore import QTimer, QObject
  6.  
  7.  
  8.  
  9. class MyFunc(Function):
  10. def __init__(self, pw):
  11. super(MyFunc, self).__init__(pw)
  12. self.pw = pw
  13. self.t = 0
  14. self.deltaT = 100
  15. self.timer = QTimer()
  16. qtObject = QObject()
  17. qtObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.updatePW)
  18. self.timer.start(self.deltaT)
  19.  
  20. def __call__(self, x, y):
  21. print "__call__"
  22. return 3 + 4*x**2 - 5*y**2 + self.t
  23.  
  24. def updatePW(self):
  25. self.debugCalled = True
  26. self.t += self.deltaT/1000
  27. #self.pw.calcNormals()
  28. #self.pw.calculateHull()
  29. #self.pw.createPoints()
  30. #self.pw.createData()
  31. #self.pw.updateNormals()
  32. #self.pw.updateData()
  33. #self.pw.updateGL()
  34. #self.pw.update()
  35.  
  36. class Plot(SurfacePlot):
  37. def __init__(self):
  38. super(Plot, self).__init__()
  39. self.myFunc = MyFunc(self)
  40. self.myFunc.setMesh(41,31)
  41. self.myFunc.setDomain(-1.73, 1.5, -1.5, 1.5)
  42. self.myFunc.setMinZ(-10)
  43.  
  44. self.myFunc.create()
  45.  
  46. self.setRotation(30, 0, 15)
  47. self.setScale(1, 1, 1)
  48. self.setShift(0.15, 0, 0)
  49. self.setZoom(0.9)
  50.  
  51. for i in xrange(self.coordinates().axes.size()):
  52. self.coordinates().axes[i].setMajors(7)
  53. self.coordinates().axes[i].setMinors(3)
  54. self.coordinates().axes[Qwt3D.X1].setLabelString("x-axis")
  55. self.coordinates().axes[Qwt3D.Y1].setLabelString("y-axis")
  56. self.coordinates().axes[Qwt3D.Z1].setLabelString("z-axis")
  57.  
  58. self.setCoordinateStyle(Qwt3D.BOX)
  59.  
  60. #self.updateData()
  61. #self.updateGL()
  62.  
  63.  
  64. if __name__ == "__main__":
  65. from PyQt4.QtGui import QApplication
  66. import sys
  67. app = QApplication(sys.argv)
  68. plot = Plot()
  69. plot.resize(800,600)
  70. plot.show()
  71. sys.exit(app.exec_())
To copy to clipboard, switch view to plain text mode 

Every time my funtion updatePW is called, I would like to recalculate the graph data, but I don't know how I could do that, I tried a bound of functions.
Anyone has an idea ?

Thanks in advance