我试图在启动时隐藏我的Qt桌面应用程序的MainWindow,并显示一个闪屏。这两种情况只在加载阶段之后发生,尽管我在加载阶段之前同时调用了splash.show()和window.hide()。我试图拆分加载阶段和构造函数,但结果是一样的。如何在加载阶段之前实现这两个目标?
更新1
要显示启动屏幕,我必须添加对QApplication::processEvents()的调用
更新2
黑窗口实际上不是MainWindow,而是一个鬼窗口,因为在构造函数中调用了scrollArea->setVisible(true)。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPixmap pixmap(QStringLiteral(":/ressources/icons/icon.png"));
QSplashScreen splash(pixmap);
splash.show();
MainWindow window; // this loads for 5-6 seconds
a.processEvents();
window.showLoginPrompt();
splash.finish(&window);
return a.exec();
}发布于 2021-07-21 21:56:17
根据您的代码和一些示例,我可以让它像您所要做的那样运行。您只需要调用您的promptLogin函数。
#include <QApplication>
#include <QTimer>
#include <QSplashScreen>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSplashScreen *splash = new QSplashScreen;
splash->setPixmap(QPixmap("D:\\Projects\\SplashScreen\\TestSplashScreen\\splash.png"));
splash->show();
MainWindow mainWin;
QTimer::singleShot(2500, splash, SLOT(close()));
QTimer::singleShot(2500, &mainWin, SLOT(show()));
return app.exec();
}https://stackoverflow.com/questions/68286242
复制相似问题