QSplashScreen 在 arm板上不显示或闪现问题解决方法

本文介绍了在QT应用中使用QSplashScreen模块在ARM板上遇到的不显示或闪现问题,并提供了有效的解决方法。通过修改代码,添加a.processEvents()函数调用以及调整窗口实例化和QSplashScreen的finish方法顺序,成功解决了在ARM平台上的显示异常。此解决方案避免了使用延迟函数,从而提高了程序效率。
摘要由CSDN通过智能技术生成

QSplashScreen 在 arm板上不显示或闪现问题解决方法

QSpalashScreen是QT 的一个模块,可以用于显示应用程序启动图片提示信息等
网上使用例程有很多,测试在Windows 下显示正常

#include "impellamainwindow.h"
#include <QApplication>
#include <QSplashScreen>

int main(int argc, char *argv[])
{
    qputenv("QT_IM_MODULE", QByteArray("tgtsml"));

    QApplication a(argc, argv);
    QSplashScreen *splash = new QSplashScreen;
    //splash->setPixmap(QPixmap(":/system_pop_up/standby.png"));//设置图片
    splash->setPixmap(QPixmap("C:/BaiduNetdiskDownload/Share/Impella/pictures/system_pop_up/standby.png"));//设置图片
    splash->show();//显示图片
    Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop;
    splash->showMessage(QObject::tr("主界面初始化中..."),topRight, Qt::white);//显示信息

    ImpellaMainWindow w;
    w.show();
    splash->finish(&w);//图片一直显示到mainWin加载完成
    delete splash;//释放空间,节省内存
    return a.exec();
}

上述代码在arm下使用时 则无法正常显示,实测在w.show();之前闪现了一下
网上很多人说要delay,这不纯纯要人命吗?本来就慢,你还要delay。

解决方法参考:

https://bbs.csdn.net/topics/394466028

修改代码后可以正常显示,
主要区别1. 添加代码 a.processEvents();
splash->finish(&w); 放在 window 实例化之后,w.show之前。

#include "impellamainwindow.h"
#include <QApplication>
#include <QSplashScreen>
#include <QPixmap>
int main(int argc, char *argv[])
{
    qputenv("QT_IM_MODULE", QByteArray("tgtsml"));

    QApplication a(argc, argv);
    QPixmap pixmap(":/system_pop_up/pictures/system_pop_up/standby.png");
    QSplashScreen *splash = new QSplashScreen(pixmap);

   // splash->setPixmap(QPixmap(":/system_pop_up/pictures/system_pop_up/standby.png"));//设置图片
    splash->show();//显示图片
    a.processEvents();

    ImpellaMainWindow w;
    splash->finish(&w);//图片一直显示到mainWin加载完成
    w.show();

    delete splash;//释放空间,节省内存
    return a.exec();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值