Qt"该程序意外完成。"在关闭

时间:2014-06-30 09:41:24

标签: c++ qt

我有关于QML 2(Qt 5.2.1)的项目。看起来效果很好。

但是当我在Qt Creator的“应用程序输出”(底部那个东西)中关闭运行项目( ALT + F4 或其他什么)时,1-2之后秒,我收到以下消息:

The program has unexpectedly finished.
bla-bla-bla.exe crashed

这在发布和调试模式下发生。我在调试下启动,但没有任何错误。我从最后一个析构函数一步一步地一直到return app.exec();,然后返回1.

我的意思是除了这个 - 我没有看到任何错误。我应该担心吗?我能知道这条消息的原因吗?有没有办法获得更具体的信息?


我尝试从cmd启动应用程序,但没有收到任何错误。我的main.cpp

#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include "painter.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    qmlRegisterType<Painter>("MyCanvas", 1, 0, "MyCanvas");

    QtQuick2ApplicationViewer viewer;
    viewer.setMainQmlFile(QStringLiteral("qml/test_painteditem/main.qml"));
    viewer.showExpanded();    

    return app.exec();
}

Main.qml:

import QtQuick 2.0
import MyCanvas 1.0

Rectangle {
    width: 360
    height: 360
    color: "white";
     focus: true;
    Keys.onLeftPressed: {
            mc.frame--;
            mc.update();
    }
    Keys.onRightPressed: {
            mc.frame++;
            mc.update();
    }
    Keys.onPressed: {
        if (event.key === Qt.Key_C){
             mc.switchCurve();
        }else if (event.key === Qt.Key_O){
            mc.switchCurveOffset();
       }    
   }

   MouseArea {
        anchors.fill: parent
        onClicked: {
            // mc.x += 10;
            //mc.update();
            if (!tim.running){
                tim.start();
            } else {
                tim.stop();
            }
        }
        onWheel: {
                if (wheel.angleDelta.y > 0)
                    mc.zoomIn();
                else
                    mc.zoomOut();
        }
        onPressed: {    
        }
    }

    Timer {
        id:tim
        interval: 1; running: false; repeat: true
        onTriggered:  {    
            mc.frame++;
            mc.update();
        }
    }    

    MyCanvas {
        id:mc;
        x:0;
        y:0;
        width:1000;         /** 2000x2000 not supported in Android  */
        height:1000;
    }
}

1 个答案:

答案 0 :(得分:1)

退出Qt应用程序时,您可以调用或连接到app.quit()方法。除此之外,返回值1可能不是Qt创建者所期望的。您希望返回值等于EXIT_SUCCESS(或0)。