still error:

each PDE iteration, if called directly, runs fine.
But if called by/from QtTimer::singleShot, will cause the following problem: the mp_img variable seems not exist or something, even use it to call mp_img->GetNumberOfPoints() failes