2015-05-07 35 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); 
} 

希望对某人有帮助。