使用QML在QT上编写程序。在QML中添加了一个文件夹选择(FileDialog)。打开FileDialog窗口后,打破程序。发现在删除对象位置的程序中断,删除c ++代码中的ptc。我想知道如果没有使用FileDialog,那么一切都按预期工作。怪异。
在GUI对象中运行QML:
engine.rootContext()->setContextProperty("GUI", this);
QQmlComponent *component = new QQmlComponent(&engine,QUrl("ui.qml"));
mainview = component->create();
在ApplicationWinow
中的ui.qml中创建一个FileDialogFileDialog {
id: fileDialog
property int number
title: "Выбор дирректории"
folder: shortcuts.home
modality : Qt.WindowModal
onAccepted: {
switch (number) {
case 0: secondPage.setDir(fileUrl.toString().replace("file:///", "")); break;
case 1: case 2: case 3: case 4: case 5: case 6:
firstPage.setDir(fileUrl,number); break;
default: break;
}
}
}
前卫的崩溃地点:
bool raschet::R1()
{
float PolPr = 0;
for (int i = 0; i < 6; i++)
{
QList<float>* ptcA1;
QString put = getData(1,0,0,0,(i/2 +2 ) % 3,i%2);
if (!put.count())
return false;
while (!FormatPTC(&ptcA1, put, i % 2, (i/2 +2 ) % 3, 0, 0, -10, 10, 0.01))
zapuskRasch(1, 20, 20, -10, -10, 0.01, 1, 0, 0, put, puts1);
for (int j = 1; j <=3; j++)
{
poiskProval(ptcA1[0],ptcA1[j],&(PolPr = 0));
//saveXLS(j-1,i+6,PolPr*60,sheet);
}
delete ptcA1; //!!!!!
}
return true;
}
P.S。不要为ptcA1分配内存,因为它是在FormatPTC函数
中分配的提前致谢!