zoukankan      html  css  js  c++  java
  • QWidget: Must construct a QApplication before a QPaintDevice

    转自:http://blog.csdn.net/yuzhiyuxia/article/details/7760917

    一个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。

    当然还有一种可能是QApplication没有初始化,即将QWidget放在QApplication对象的前面了。(转者注:貌似我也遇到这种情况)

  • 相关阅读:
    Spring
    linux下jdk多版本管理
    linux集群管理
    python多任务处理
    Web框架的引入
    Git命令大全
    Git远程仓库--GitHub
    基于python实现简单web服务器
    python文件读写方式
    几句话搞懂URI、URL、URN之间的关系
  • 原文地址:https://www.cnblogs.com/pamxy/p/2991478.html
Copyright © 2011-2022 走看看