Qt Quick 2上的QSplashScreen

lie*_*ewl 2 qt qt5 qtquick2

我在新的Qt Quick 2项目上使用QSplashScreen时遇到问题.这是项目'main.cpp':

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QPixmap pix("./test80.png");

    QSplashScreen splash(pix);

    splash.show();

    QTest::qSleep(5000);

    splash.hide();

    QtQuick2ApplicationViewer viewer;
    viewer.setMainQmlFile(QStringLiteral("qml/teste/main.qml"));
    viewer.showExpanded();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

这段代码编译.当我运行它时,应用程序输出显示以下消息:QWidget: Cannot create a QWidget without QApplication.显然QGuiApplication并没有从QApplication继承,所以我很难过.

编辑:将QGuiApplication更改为QApplication似乎有效,但我担心QApp Quick将缺少Qt Quick 2所需的东西.

pep*_*ppe 5

实际上它是另一种方式:QApplication继承自QGuiApplication.你需要前者使用小部件.:-)

  • David McDavidson:QGuiApplication能够使用没有小部件依赖的UI(即QtQuick)应用程序.QApplication依赖于QtWidgets.它不会"弄乱"东西,但是如果一个闪屏值得依赖,那就值得怀疑. (2认同)