Hack Python Titlebar - A package to manipulate windows and titlebar of GUI applications made using python.
Project description
hPyT - Hack Python Titlebar
A package to manipulate windows and titlebar of GUI applications made using python Supports Both Windows 11 and 10
https://github.com/Zingzy/hPyT/assets/90309290/f86df1c7-b75b-4477-974a-eb34cc117df3
You can download the above app from the github releases to test out the package before installing/using it in your projects
📖 Table of Contents
- hPyT - Hack Python Titlebar
- 📚 Supported Libraries
- 📦 Installing
- 📥 Importing
- Hide/Unhide Title Bar
- 🌈 Rainbow TitleBar
- 🌈 Rainbow Border
- Hide/Unhide both Maximize and Minimize Buttons (Completely Hides both buttons)
- Hide/Unhide All Buttons or Stuffs
- Enable/Disable Maximize Button
- Enable/Disable Minimize Button
- Opacity
- ⚡ Flashing Window
- 🎨 Custom TitleBar Color
- 🖌️ Custom TitleBar Text Color
- 🖌️ Custom Border Color
- 💻 Window Management
- ✨ Window Animations
- ✏️ Stylize text
- 📜 hPyT Changelog
📚 Supported Libraries
- Tkinter & CustomTkinter
- PyQt
- PySide
- WxPython
- support for more libraries soon...
📦 Installing
pip install hPyT==1.3.0
📥 Importing
from hPyT import *
from customtkinter import * # you can use any other library from the above mentioned list
window = CTk() # creating a window using CustomTkinter
Hide/Unhide Title Bar
title_bar.hide(window) # hides full titlebar
# title_bar.unhide(window)
🌈 Rainbow TitleBar
rainbow_title_bar.start(window, interval=5) # starts the rainbow titlebar
# rainbow_title_bar.stop(window) # stops the rainbow titlebar
[!NOTE]
interval
is the time in milliseconds in which the color would change
🌈 Rainbow Border
rainbow_border.start(window, interval=4) # starts the rainbow border
# rainbow_border.stop(window) # stops the rainbow border
Hide/Unhide both Maximize and Minimize Buttons (Completely Hides both buttons)
maximize_minimize_button.hide(window) # hides both maximize and minimize button
# maximize_minimize_button.unhide(window)
Hide/Unhide All Buttons or Stuffs
all_stuffs.hide(window) # hides close button
# all_stuffs.unhide(window)
Tip: to hide the text set the window title to ''
Enable/Disable Maximize Button
maximize_button.disable(window) # hides maximize button
# MaximizeButton.enable(window)
Enable/Disable Minimize Button
minimize_button.disable(window) # hides minimize button
# MinimizeButton.enable(window)
Opacity
opacity.set(window, 0.5) # sets the window opacity to 50%
# opacity.set(window, 1) # resets the window opacity to 100%
⚡ Flashing Window
window_flash.flash(window, 10, 100) # flashes the window 10 times with 100ms interval
# window_flash.stop(window) # stops the flashing immediately
Flashing Interval starts from 10ms, default 1000ms
🎨 Custom TitleBar Color
title_bar_color.set(window, '#ff00ff') # sets the titlebar color to magenta
# title_bar_color.reset(window) # resets the titlebar color to default
[!NOTE] You can pass any valid color in
Hex
orRGB
format
🖌️ Custom TitleBar Text Color
title_text_color.set(window, '#ff00ff') # sets the titlebar text color to magenta
# title_text_color.reset(window) # resets the titlebar text color to default
🖌️ Custom Border Color
border_color.set(window, '#ff00ff') # sets the border color to magenta
# border_color.reset(window) # resets the border color to default
💻 Window Management
Center a window on the screen
window_frame.center(window)
Center a secondary window relative to the primary window
window_frame.center_relative(window, child_window)
Example Usecase
window = CTk()
window.title("Primary Window")
child_window = CTkToplevel()
window_frame.center_relative(window, child_window)
window.bind("<Configure>", lambda event: window.center_relative(window, child_window))
Other basic window management functions
window_frame.move(window, 100, 100) # moves the window to (100, 100)
window_frame.resize(window, 500, 500) # resizes the window to 500x500
window_frame.maximize(window) # maximizes the window
window_frame.minimize(window) # minimizes the window
window_frame.restore(window) # restores the window
✨ Window Animations
Circle Motion
window_animation.circle_motion(window, count=5, interval=5, radius=30)
# moves the window in a circular motion 5 times with 5ms interval and 30px radius
The animation might appear a bit fasterer and rougher in the above preview gif than it is
Verical Shake
window_animation.vertical_shake(window, count=5, interval=5, amplitude=20)
# shakes the window vertically 5 times with 5ms interval and 10px distance
Horizontal Shake
window_animation.horizontal_shake(window, count=5, interval=5, amplitude=20)
# shakes the window horizontally 5 times with 5ms interval and 10px distance
✏️ Stylize text
title_text.stylize(window, style=1)
Below is a gif demonstrating all of the available styles
Miscellaneous
print(stylize_text("Your Custom Text", style=1)) # stylizes your text
# all of the styles shown on the above gif are available
>>> "𝔜𝔬𝔲𝔯 ℭ𝔲𝔰𝔱𝔬𝔪 𝔗𝔢𝔵𝔱"
📜 hPyT Changelog
v1.3.0
- Add support for setting custom border color
- Add support for rainbow border color effect
- Add support for resetting the titleBar color and titleText color
- Fix an issue which caused the titleBar to appear black after the rainbow titleBar effect was stopped
v1.2.1
- Minor Bug Fixes
v1.2.0
- Add support for rainbow titlebar
- Add support for styling title text
- Add support for vertical, horizontal shake and circle motion window animations
- Add support for centering a window on the screen
- Add support for centering a window relative to another window
- Add support for moving/resizing/maximizing/minimizing/restoring a window
- Add support for setting custom titlebar color
- Add support for setting custom titlebar text color
v1.1.3
- Add flashing inverval support
v1.1.2
- Add window flashing support
- Add window opacity support
- Add support for PyGTK
v1.1.1
- Add support for WxPython, PyQt and PySide
v1.1.0
- Initial Release
© zingzy . 2024
All Rights Reserved
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.