로드가 느린 응용 프로그램에 스플래시 화면을 추가하고 싶습니다. 테스트 할 간단한 앱을 만들었습니다.Qt : 응용 프로그램로드 중 그림 표시
MAIN.CPP :
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPixmap pixmap("/home/helene/Images/my_image.png");
if (pixmap.isNull())
{
pixmap = QPixmap(300, 300);
pixmap.fill(Qt::magenta);
}
QSplashScreen *splash = new QSplashScreen(pixmap);
splash->show();
splash->showMessage("Loaded modules dsjhj");
QQmlApplicationEngine engine;
engine.load(QUrl("qrc:/main.qml"));
QObject *topLevel = engine.rootObjects().value(0);
QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
if (!window)
{
qWarning("Error: Your root item has to be a Window.");
return -1;
}
else
{
window->showFullScreen();
}
return app.exec();
}
main.qml는
Window {
visible: false
width: 360
height: 360
property variant t: determineT()
MouseArea {
anchors.fill: parent
onClicked: {
Qt.quit();
}
}
Text {
text: qsTr("Hello World")
anchors.centerIn: parent
}
function determineT() {
for(var i=0; i<1000000000; i++);
}
}
I로드의 상승 시간이 오래 기능을 추가했습니다. 앱 상태가되면 그림의 "그림자"를 볼 수 있습니다. 그림은 응용 프로그램 바로 전에 완전히로드 된 것 같습니다. 리소스와 절대 경로로 이미지를 시도했지만 문제가 동일합니다.
"qApp-> processEvents (QEventLoop :: AllEvents);"를 추가했습니다. "splash.show()"다음에 작동합니다. 감사 – helene