حذف ككيكفيو على خروج سبب تطبيق كيو تي لتجميد

StackOverflow https://stackoverflow.com//questions/24045120

  •  21-12-2019
  •  | 
  •  

سؤال

لقد أسست طريق مسدود في كيو تي 5.3.كيفية إصلاح بشكل صحيح?دون إصلاح القبيح (وليس لحذف كويكفيو *)

لدي المفرد مع مؤشر ل QQuickView.عندما كنت في حاجة لإغلاق طلبي أفعل مكالمة من QGuiApplication::quit() ومحاولة إطلاق سراح QQuickView * في ديستروكتور من سينغلينوت.النتيجة-تجميد التطبيق.

عينة:

اختبار.قمل

import QtQuick 2.1

Rectangle
{
    id: root;
    color: "black";

    signal quit();
    Component.onDestruction: quit();
}

الرئيسية.حزب الشعب الكمبودي

#include <QGuiApplication>
#include <QQuickView>
#include <QQuickItem>
#include <QPointer>


struct Singleton
{
    QPointer< QQuickView > w;
    static Singleton inst;

    int run( int argc, char *argv[] )
    {
        QGuiApplication a( argc, argv );
        w = new QQuickView();

        QObject::connect( w, &QQuickView::statusChanged, [=]()
        {
            QObject::connect( w->rootObject(), SIGNAL( quit() ), qApp, SLOT( quit() ) );
        } );

        w->setSource( QUrl( "qrc:/test.qml" ) );
        w->setResizeMode( QQuickView::SizeRootObjectToView );
        w->show();

        a.exec();

        return 0;
    }

    ~Singleton()
    {
        delete w;   // Comment this to fix bug
    }

};

Singleton Singleton::inst;


int main(int argc, char *argv[] )
{
    Singleton::inst.run( argc, argv );
    return 0;
}

سكرتير خاص.ج 0 0س يستخدم لتبسيط التعليمات البرمجية.نفس النتيجة على ج 0 03 المجمعين.

هل كانت مفيدة؟

المحلول

كان علة في كيو تي.ثابت منذ 5.4 الإصدار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top