QWidget: Must construct a QApplication before a QPaintDevice
轉(zhuǎn)自:http://blog.csdn.net/yuzhiyuxia/article/details/7760917
一個(gè)QT程序,在Windows下編譯運(yùn)行正常;現(xiàn)在在Linux下編譯成功之后運(yùn)行的時(shí)候,程序卻異常退出,命令行提示:QWidget: Must construct a QApplication before a QPaintDevice。
字面意思是必須在一個(gè)QPaintDevice對(duì)象(這里是QWidget,QWidget是QPaintDevice的子類(lèi))之前,先創(chuàng)建好QApplication對(duì)象。
不可能啊。。。在windows下運(yùn)行是正常的啊!
g了好久,找到一篇文章:http://blog.chinaunix.net/u1/56545/showart.php?id=495687 (轉(zhuǎn)者注:這個(gè)鏈接已經(jīng)用不了)
雖然說(shuō)是qwt的庫(kù)的問(wèn)題,但是,也可能是因?yàn)閞elease和debug的問(wèn)題導(dǎo)致的。 因?yàn)槲以趌inux下是用的make all命令編譯出的debug和release版本,二者生成的庫(kù)文件的目錄是相同的,很有可能產(chǎn)生相同的庫(kù)文件而導(dǎo)致的沖突。(不像qt的dll那樣release的沒(méi)有d,debug的有d)
基于此,修改pro文件,將debug和release生成的庫(kù)文件放在各自的目錄下,運(yùn)行,ok。
當(dāng)然還有一種可能是QApplication沒(méi)有初始化,即將QWidget放在QApplication對(duì)象的前面了。(轉(zhuǎn)者注:貌似我也遇到這種情況)
轉(zhuǎn)載于:https://www.cnblogs.com/pamxy/archive/2013/03/15/2991478.html
總結(jié)
以上是生活随笔為你收集整理的QWidget: Must construct a QApplication before a QPaintDevice的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: POJ-2155 Matrix 二维线段
- 下一篇: 一些数学基本概念