Qt学习之路之自定义程序启动画面

很多应用程序在启动时,都会在程序完成启动前显示启动画面,当程序完全启动后,启动画面消失。

Qt类中的QSplashScreen类实现了在程序启动过程中显示启动画面的功能。  

先看看效果:

这个是启动画面:


这个是启动后的界面:



main.cpp

#include <QtWidgets/QApplication>
#include "eidt_widget.h"
#include <QSplashScreen>
#include <QPixmap>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	---程序启动动画 从这儿开始
	QPixmap pixmap("1.png");
	QSplashScreen splash(pixmap);
	splash.show();
	///---在这个时间段内, 可以做些事儿,我这儿空转了, 什么都没做
	for (long index = 0; index <= 1000000000; index++);

	///---我们自己要弹出的窗口
	EditWidget win;
	win.show();

	a.processEvents();
	splash.finish(&win);
	///-------------程序启动画面到这结束

	return a.exec();
}
赶紧试试吧~~~~

在PyQt中,可以通过自定义启动画面来增加应用程序的专业感和用户体验。下面是一种实现自定义启动画面的方法: 1. 创建一个新的启动画面窗口类,继承自QMainWindow或QWidget。 2. 在该类中,可以添加自定义的UI元素,例如Logo、进度条等。 3. 在启动画面窗口类的构造函数中,设置窗口的样式、大小和位置等属性。 4. 在应用程序的主窗口类中,创建一个启动画面窗口对象,并在应用程序启动时显示该窗口。 5. 在应用程序初始化过程中,可以执行一些耗时的操作,例如加载资源、初始化数据等。 6. 在耗时操作完成后,关闭启动画面窗口,并显示应用程序的主窗口。 下面是一个简单的示例代码,演示了如何实现自定义启动画面: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QSplashScreen, QLabel from PyQt5.QtGui import QPixmap from PyQt5.QtCore import Qt, QTimer class SplashScreen(QMainWindow): def __init__(self): super().__init__() self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) self.setFixedSize(400, 300) # 添加自定义UI元素 label = QLabel(self) pixmap = QPixmap('logo.png') label.setPixmap(pixmap) label.setAlignment(Qt.AlignCenter) self.show() class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('My Application') self.setGeometry(100, 100, 800, 600) # 执行耗时操作 self.load_data() self.show() def load_data(self): # 模拟耗时操作 QTimer.singleShot(3000, self.close_splashscreen) def close_splashscreen(self): self.splashscreen.close() if __name__ == '__main__': app = QApplication([]) # 创建启动画面窗口对象 splashscreen = SplashScreen() # 创建应用程序主窗口对象 mainwindow = MainWindow() mainwindow.splashscreen = splashscreen app.exec_() ``` 在上述示例代码中,SplashScreen类是自定义启动画面窗口类,MainWindow类是应用程序的主窗口类。在MainWindow类中,通过load_data()方法模拟了一个耗时操作,并使用QTimer.singleShot()方法延迟3秒后关闭启动画面窗口。 请注意,上述示例代码中使用了Qt的定时器来模拟耗时操作,实际应用中需要根据具体需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值