Qt程序启动画面QSplashScreen类

155 篇文章 26 订阅

Qt程序启动画面QSplashScreen类

当程序初始化工作比较多,程序可能启动较长时间后,窗口才会显示出来,用户没准会抱怨程序响应的慢。为了改善用户体验,最好在程序初始化这段时间显示logo,或者其他信息提示用户程序已启动。QT提供了QSplashScreen类,其使用方法比较简单,下面的例子就是,当程序运行到 splash. show();时,logo.gif就会显示出来,当dialog的初始化完成,运行到 splash. finish(& dialog);时, 主窗口显示出来,并且 启动画面隐藏。

int main( int argc, char * argv[]) 

    QTextCodec :: setCodecForTr( QTextCodec :: codecForName( "GB18030" )); 

    QApplication app(argc,argv); 

   

    QPixmap pixmap(":/images/logo.gif");      //绑定一个图片      

    QSplashScreen *splash=new QSplashScreen;

    splash.setPixmap(pixmap);   

    splash.show();                            //显示启动画面      

    app.processEvents();                //加载其他的模块

   

    mainWindow dialog;     

    dialog.show(); 

     

    splash.finish(&dialog);     //当主窗口启动后,启动画面隐藏    

    delete splash;

             

    return app.exec(); 

当程序启动慢的时候,该画面就会停留一会,也可以在图片上显示一下程序启动的加载信息,如上述代码中的showMessage(),但是如果程序启动很快的话,启动图片就会一闪而过,其实启动画面也出现了的,只是出现的时间比较短,如果想让程序启动之前画面多停留一下,可以添加一个延时器

QDateTime n=QDateTime::currentDateTime();

QDateTime now;

do{

now=QDateTime::currentDateTime();

} while (n.secsTo(now)<=6);//6为需要延时的秒数

这样启动画面就可以多停留6秒。

在PyQt6中,可以通过添加程序启动画面来提升用户体验。以下是一种实现方式: 1. 首先,你需要创建一个启动画面的窗口。可以使用QMainWindow或者QWidget作为基,根据你的需求选择适合的。 2. 在启动画面窗口中,可以添加一些控件和布局,以展示你想要显示的内容。例如,可以添加一个QLabel来显示应用程序的名称或者Logo图片。 3. 在主程序中,创建一个启动画面窗口的实例,并设置其为程序启动画面。可以使用QApplication的setSplashScreen方法来设置启动画面。 4. 在主程序中进行其他初始化操作,例如加载资源、创建主窗口等。 5. 当主窗口准备好显示,可以关闭启动画面窗口,并显示主窗口。可以使用QApplication的closeSplashScreen方法来关闭启动画面。 下面是一个简单的示例代码: ```python from PyQt6.QtWidgets import QApplication, QMainWindow, QSplashScreen, QLabel from PyQt6.QtGui import QPixmap import sys class SplashScreen(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("启动画面") label = QLabel(self) pixmap = QPixmap("logo.png") # 设置Logo图片 label.setPixmap(pixmap) label.setAlignment(Qt.AlignmentFlag.AlignCenter) self.setCentralWidget(label) if __name__ == "__main__": app = QApplication(sys.argv) splash = QSplashScreen() splash.setPixmap(QPixmap("splash.png")) # 设置启动画面图片 splash.show() # 创建启动画面窗口实例 splash_window = SplashScreen() # 设置启动画面 app.setSplashScreen(splash) # 其他初始化操作... # 关闭启动画面显示主窗口 app.closeSplashScreen() sys.exit(app.exec()) ``` 请注意,上述代码仅为示例,你需要根据自己的需求进行适当的修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值