A module for making Splash Screens with videos, images, loading bars, text rendering, and threaded rendering support for Applications.
Project description
splashscreen-engine
A module for making Splash Screens with videos, images, loading bars, text rendering, and threaded rendering support for your Applications.
Sample Preview
Features
- Optional Title Bar
- Dynamic Window Resizing
- Fullscreen Support
- Background videos
- Background images
- Loading bars
- Text rendering
- Transparency support
- Threaded rendering
- Video looping
- Simple API
Installation
pip install splashscreen-engine
OR
pip install splashscreen-engine==2.0.3
Example
import splashscreen_engine as splash
screen = splash.Screen()
screen.size(750,500)
# This Starts The Engine
screen.start()
# Background Video
video = splash.BackgroundVideo(
screen,
"exampleVid.mp4",
fps=30,
loop=True
)
video.play()
# Loading Bar
bar = splash.LoadingBar(screen,add_xy=(0,100)) # By default, position is `center` and add 100 units to y-axis
bar.place()
# Text `loading`
text = splash.Text(
screen,
"Loading...",
"impact",
20,
"down",
add_xy=(0,-80) # Place the text downward and subtract 80 units from y-axis
)
text.show()
# LOADING | you can add your `loading` processes here
a = 0
while not a >= 100:
a += 0.3
text.edit(
text=f"loading : {round(a,2)}%"
)
bar.set_progress(a)
screen.wait(0.05)
text.edit(
text="loaded : 100%"
)
screen.wait(3)
# Stop the splash screen after loading
screen.stop()
"""
if you are using pygame module in your own code,
use `screen.stop(quit_pygame=False)`
instead of `screen.stop()`
"""
# Main Screen Example
import tkinter # Used as main screen for example.
main_screen = tkinter.Tk()
main_screen.geometry("750x500")
main_text = tkinter.Label(
main_screen,
text="Your Main Screen",
font=("impact",40)
)
main_text.pack()
main_screen.mainloop()
Requirements
These Modules are automatically installed with : pip install splashscreen-engine
- pygame
- opencv-python
- numpy
Functions
Basic Window
import splashscreen_engine as splash
screen = splash.Screen()
screen.size(750, 500)
screen.start()
Stop and Delete Screen
screen.stop()
# Use:
screen.stop(quit_pygame=False)
# if you are using pygame in your own application.
Set Size for your window
screen.size(750,500)
# Arguments:
# width, height, fullscreen
# OR
screen.size(fullscreen=True)
Set title for your window
screen.title("Your Title")
Set Background color
screen.set_bg_color((255,0,0)) # Red
Get Window Size
width,height = screen.get_size()
Window with Title bar (optional)
A title bar is the top bar of a window. It usually contains:
- window title
- window icon # Coming Soon
- close button
- minimize button
- maximize button
- Note : Clicking on Maximize / Minimize button automatically resizes the screen
To create a Title Bar
screen = splash.Screen(title_bar=True)
Functions for Title Bar
Adding an Icon
screen.set_icon("YourIcon.png")
To Check if the user clicked on X button
screen.is_quit()
To check if the user pressed Esc Key during fullscreen
screen.is_escaped()
Note : These functions are only applicable when title_bar = True else it will raise an error.
Wait Function
Instead of using time.sleep(),
you can use this function because it prevents
the window not responding issue.
screen.wait(0.5) # Seconds
Background Video
You can add a video as the background of your splash screen using this function.
video = splash.BackgroundVideo(
screen,
"exampleVid.mp4",
fps=30,
loop=True
)
# loop = True / False
# default(False)
# fps = int
# default(30)
Play video
video.play()
Pause video
video.pause()
Resume video
video.resume()
Delete video
video.delete()
Transparency
Make your video transparent.
Transparency Level:
0 to 255
Default:
120
video.transparency(150)
Stop Transparency
video.stop_transparency()
Stopping / Resuming Video Loops
# Loop Video
video.loop = True
# Stop the Loop
video.stop_loop()
# OR
video.loop = False
To check whether the video is playing or stopped
# Returns True if playing else False
video.playing()
Background Image
You can add an image as the background of your splash screen using this function.
bg_img = splash.BackgroundImage(
screen,
"YourImage.png"
)
bg_img.set()
Progress Bar
This function adds a progress bar.
bar = splash.LoadingBar(
screen,
position="down",
add_xy=(0,-50)
)
# Arguments:
# parent, width, height,
# position, add_xy
bar.place()
# Arguments:
# colour, loading_colour
Available Positions
"center"
"right"
"left"
"up"
"down"
Hiding the Progress Bar
bar.hide()
Setting Progress
bar.set_progress(50)
Text
Adds text on the screen.
text = splash.Text(
screen,
"Loading...",
"impact",
20,
position="center",
add_xy=(0,0)
)
# Arguments:
# parent, text, font,
# size, position,
# add_xy, colour
text.show()
Available Positions
"center"
"right"
"left"
"up"
"down"
Show and Hide text
# Show text
text.show()
# Hide text
text.hide()
Edit The Text | Supports Dynamic Editing
This allows you to edit the text dynamically.
Example:
Changing:
f"Loading {i}%"
inside loops.
text.edit(
text = "New Loading Text Added",
font = "IMPACT",
new_size = 20,
position = "center",
add_xy = (0,0),
colour = (0,255,0)
)
add_xy Argument
add_xy allows you to move objects relative to their selected position.
Structure:
add_xy = (x,y)
| Value | Meaning |
|---|---|
Positive x |
Move Right |
Negative x |
Move Left |
Positive y |
Move Down |
Negative y |
Move Up |
Example:
text = splash.Text(
screen,
"Loading...",
position="center",
add_xy=(0,-100)
)
Getting Documentation
documentation = splash.Documentation()
Opening Documentation
This opens README.md file on Github
documentation.open()
Contact Details
This prints all the contact details
documentation.contact()
Contributing & Feedback
Discuss approaches, suggest new features, report bugs, or share improvements through GitHub issues and discussions.
Mail:
PyPI:
https://pypi.org/project/splashscreen-engine
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file splashscreen_engine-2.0.3.tar.gz.
File metadata
- Download URL: splashscreen_engine-2.0.3.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c59a23ce2efa79cf170b7f0915ee86a4759c2af7d983f40ea2cbab00c9ee456
|
|
| MD5 |
250edad11177f6de277a66ebd72c0bc1
|
|
| BLAKE2b-256 |
eee55598ed75ab4ad6d8c02e5d42564e097b4f5a902a16a6c7c97f7ebe42ba17
|
File details
Details for the file splashscreen_engine-2.0.3-py3-none-any.whl.
File metadata
- Download URL: splashscreen_engine-2.0.3-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eda0369f7a91285ce9c3d1c303e9c3f3d914e004459d80b7f17e0686c53e53d
|
|
| MD5 |
230d709755b1276e21b730d33bbc7b6c
|
|
| BLAKE2b-256 |
6ebc5f88e5866904f407b5d161d8fdf7d4e7671dbd89450769a8249d74ada7bb
|