Skip to main content

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

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

Preview

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:

chhabranaman21@gmail.com

PyPI:

https://pypi.org/project/splashscreen-engine


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

splashscreen_engine-2.0.3.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

splashscreen_engine-2.0.3-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

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

Hashes for splashscreen_engine-2.0.3.tar.gz
Algorithm Hash digest
SHA256 1c59a23ce2efa79cf170b7f0915ee86a4759c2af7d983f40ea2cbab00c9ee456
MD5 250edad11177f6de277a66ebd72c0bc1
BLAKE2b-256 eee55598ed75ab4ad6d8c02e5d42564e097b4f5a902a16a6c7c97f7ebe42ba17

See more details on using hashes here.

File details

Details for the file splashscreen_engine-2.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for splashscreen_engine-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8eda0369f7a91285ce9c3d1c303e9c3f3d914e004459d80b7f17e0686c53e53d
MD5 230d709755b1276e21b730d33bbc7b6c
BLAKE2b-256 6ebc5f88e5866904f407b5d161d8fdf7d4e7671dbd89450769a8249d74ada7bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page