最近在做一个关于Qt的项目,在debug版本中没有任何问题,所以就想看看在Release版本下的运行情况,结果在开始运行时,出现如下图1-1所示的错误。在网上搜索答案,大多数是关于QWidget: Must construct a QApplication before a QPaintDevice 的相关问题,搜索了半天也没找到答案,后来还是决定自己根据实际情况及备份来寻找问题根源所在。

  

  与备份进行对比,发现与QWidget相关的变动就是新增加了一个ctkCheckableComboBox实例对象,将ctkCheckableComboBox实例对象进行屏蔽后,发现程序果然可以运行成功,遂锁定目标ctkCheckableComboBox。

  ctkCheckableComboBox属于CTK - The Common Toolkit,CTK相关资源可见http://commontk.org/index.php/Main_Page, 其他不做赘述。在此,ctkCheckableComboBox的使用涉及到了相关的动态链接库,再加上图1-1所示,我进行运行的明明是Release版本,但是图1-1显示的却是Qt5Cored.dll,而Qt5Cored.dll属于Qt的debug版本,因此猜想我在Release版本中用到的ctkCheckableComboBox相关动态链接库应该是debug版本的,后经查证,果真如此。

QWidget: “Must construct a QApplication before a QWidget”-LMLPHP

              图 1-1

05-27 16:09