详解:qwidget: must construct a qapplication before a qpaintdevice VS报错
来源:互联网 发布:淘宝网上买奶粉可靠吗 编辑:程序博客网 时间:2024/05/20 14:15
问题:
使用VS编译连接都没有错误,但是运行的时候出现提示:
qwidget: must construct a qapplication before a qpaintdevice
然后就是没反应了。
原因1:必须有QApplication实例。
原因2:
一个QT程序,在Windows下编译运行正常;现在在Linux下编译成功之后运行的时候,程序却异常退出,命令行提示:QWidget: Must construct a QApplication before a QPaintDevice。
字面意思是必须在一个QPaintDevice对象(这里是QWidget,QWidget是QPaintDevice的子类)之前,先创建好QApplication对象。
不可能啊。。。在windows下运行是正常的啊!
g了好久,找到一篇文章:http://blog.chinaunix.net/u1/56545/showart.php?id=495687
虽 然说是qwt的库的问题,但是,也可能是因为release和debug的问题导致的。 因为我在linux下是用的make all命令编译出的debug和release版本,二者生成的库文件的目录是相同的,很有可能产生相同的库文件而导致的冲突。(不像qt的dll那样 release的没有d,debug的有d)
基于此,修改pro文件,将debug和release生成的库文件放在各自的目录下,运行,ok。
在弄lele给代码时候 老是出现QWidget: Must construct a QApplication before a QPaintDevice这样的错误,后来只是照例子放到我的main里面都还是那个错误,但是在例子原来的地方就没事,因为我的加了 控制台,例子的没有加控制台 打印不出东西来,我就突然想起debug和release的事情来,果然 改例子的pro变成debug 同样出现QWidget: Must construct a QApplication before a QPaintDevice这这样的提示,这下找到了问题的原因了。赶紧到qwt.pro一看果然只有release 我就加了一个debug ,保存退出,make clean 接着make,得到了qwt的debug的库 ,不过名字没有变,不像qt的dll那样release的没有d,debug的有d。估计是程序是debug,qwt是release,qt是 debug,他们之间有点过节吧 ,呵呵:)对了,要记得到qwt里面的designer把那个插件的pro也换过来哦,同样make clean后再make。然后把编译好的新的插件dll放到qt的相应的插件目录。否则到qt的designer加qwt的控件还是会挂!!!
参考网页:http://hi.baidu.com/wolfand11/blog/item/772b738ff6c84ce5f11f36fa.html
http://whuisslq.blog.sohu.com/162497784.html
- 详解:qwidget: must construct a qapplication before a qpaintdevice VS报错
- [Qt]QWidget Must construct a QApplication before a QPaintDevice问题解决
- QWidget: Must construct a QApplication before a QPaintDevice
- 解决QWidget: Must construct a QApplication before a QPaintDevice
- QWidget: Must construct a QApplication before a QPaintDevice
- 怪异问题:qwidget: must construct a qapplication before a qpaintdevice
- QWidget: must construct a QApplication before a QPaintDevice问题解决方法
- 解决QWidget: Must construct a QApplication before a QPaintDevice错误
- 解决QWidget: Must construct a QApplication before a QPaintDevice
- QT DLL的使用问题---QWidget: Must construct a QApplication before a QPaintDevice
- 装CGAL与解决"QWidget: Must construct a QApplication before a QPaintDevice". 问题
- 终于解决了QWidget: Must construct a QApplication before a QPaintDevice的问题
- 解决QWidget: Must construct a QApplication before a QPaintDevice的问题
- QT运行报错:QWidget: Must construct a QApplication before a QWidget
- QWidget: Must construct a QApplication before a QWidget
- QWidget: Must construct a QApplication before a QWidget
- QWidget: must construct a QApplication before a QWidget
- QWidget: Must construct a QApplication before a QWidget
- MTK Catcher 的使用
- QTreeWidgetItem 点击可编辑修改
- 一步步教你为网站开发Android客户端
- 第二步:Cotex-M3 STM32架构学习资料
- android的窗口机制分析------事件处理
- 详解:qwidget: must construct a qapplication before a qpaintdevice VS报错
- Sruts2 学习笔记(马士兵教程 struts2.1.6版本) 第五天
- The following error occured:These Qt version are inaccessible: qt in **
- QTreeView点击标题头列可排序,不可移动
- 一个自动转换的误导
- Index for WC Solution
- c++primer 学习笔记(1.0)快速入门
- Android应用程序键盘(Keyboard)消息处理机制分析 .
- Spring定时器的两种实现方式