QWidget: Must construct a QApplication before a QPaintDevice

Debug模式下程序运行正常,变成Release 模式后,运行报错:QWidget: Must construct a QApplication before a QPaintDevice。

先网上查了一下,包括权哥的日志 http://whuisslq.blog.sohu.com/162497784.html,以为是qwt出了问题。重新编了一下,问题依旧。其实此时根本没有用到qwt,

纯属多余。通过注释部分代码,找到是QVTKWidget初始化时出了问题,查看用到的vtk 5.6的库,发现bin下的有 QVTK.dll 和QVTKr.dll 两个,看来是这个QVTK.dll有Debug和Release 两种,将前一个重命名为 QVTKd.dll ,后一个重命名为QVTK.dll 后,重新运行,成功。

【以后调bug时,尤其是在Release模式下,不能加断点,必须得好好利用排除法,通过注释部分代码,来锁定出错的位置。】

原文地址:https://www.cnblogs.com/wenshanzh/p/2825978.html