在QML中使用FileDialog后加载程序时出错

时间:2017-06-20 07:01:03

标签: c++ qt qml

使用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中创建一个FileDialog
FileDialog {
    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函数

中分配的

提前致谢!

0 个答案:

没有答案