我有关于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;
}
}
答案 0 :(得分:1)
退出Qt应用程序时,您可以调用或连接到app.quit()
方法。除此之外,返回值1可能不是Qt创建者所期望的。您希望返回值等于EXIT_SUCCESS
(或0
)。