2015-05-07 32 views

回答

1

最後我連接到frameSwapped信號的主要頂級QQuickWindow我的申請。它在每次重新繪製完成後立即被調用。所以,第一次重新繪製後,我的槽將被調用,並且我將開始真正加載數據(速度很慢)。在這個插槽裏,我銷燬了這個連接,所以我不會減慢應用程序的速度。

//main.cpp 
QQuickWindow* mainWindow = 
    qobject_cast<QQuickWindow*>(engine.rootObjects().first()); 
QMetaObject::Connection loadingFinished = 
    QObject::connect(mainWindow, SIGNAL(frameSwapped()), 
        &controller, SLOT(construct())); 
controller.setConnection(loadingFinished); 

//Controller.cpp 
void Controller::construct() // this is slot 
{ 
    // some really long operation 
    disconnect(*m_loadingFinished); 
} 

希望對某人有幫助。