No description
| custom_file_dialog | ||
| screenshots | ||
| .gitignore | ||
| __init__.py | ||
| animated_icon.py | ||
| CHANGELOG.md | ||
| common_tools.py | ||
| config_manager.py | ||
| LICENSE | ||
| log_window.py | ||
| logger.py | ||
| message.py | ||
| README.md | ||
LxTools Shared Libraries
A collection of shared UI components and utility libraries for the LxTools application suite.
Features
- Custom File Dialog (
CustomFileDialog): A modern, themeable file selection dialog. - Message Dialogs (
MessageDialog): Highly customizable, theme-aware popup dialogs for alerts, questions, and info messages. - Animated Icons (
AnimatedIcon): A custom Tkinter Canvas widget supporting smooth, anti-aliased (Pillow-based) animations (spinners, arcs, pulses, etc.) with native HiDPI support. - Common Tools: Reusable utility functions for logging, configuration management, and system integration.
Animated Icon Demo
Here is a quick example of how to use the AnimatedIcon for both dark and light themes.
import tkinter as tk
from shared_libs.animated_icon import AnimatedIcon
root = tk.Tk()
root.title("Animated Icon Demo")
root.geometry("450x250")
root.configure(bg="#2d2d2d") # Dark background
animations = ["line", "double_arc", "counter_arc", "blink"]
# Example 1: Dark Theme Spinners
lbl_dark = tk.Label(root, text="Dark Theme Animations:", bg="#2d2d2d", fg="white", font=("Ubuntu", 10, "bold"))
lbl_dark.pack(pady=(20, 5))
frame_dark_icons = tk.Frame(root, bg="#2d2d2d")
frame_dark_icons.pack(pady=(0,10))
for anim in animations:
icon = AnimatedIcon(
frame_dark_icons,
width=64, height=64,
animation_type=anim,
color="#3498db", # Base color
highlight_color="#ffffff", # Highlight/Spinner color
use_pillow=True,
bg="#2d2d2d"
)
icon.pack(side="left", padx=15)
icon.start()
# Example 2: Light Theme Spinners
frame_light = tk.Frame(root, bg="#f0f0f0", pady=20)
frame_light.pack(fill="both", expand=True, side="bottom")
lbl_light = tk.Label(frame_light, text="Light Theme Animations:", bg="#f0f0f0", fg="black", font=("Ubuntu", 10, "bold"))
lbl_light.pack(pady=5)
frame_light_icons = tk.Frame(frame_light, bg="#f0f0f0")
frame_light_icons.pack()
for anim in animations:
icon = AnimatedIcon(
frame_light_icons,
width=64, height=64,
animation_type=anim,
color="#bdc3c7", # Base color
highlight_color="#2c3e50", # Highlight/Spinner color
use_pillow=True,
bg="#f0f0f0"
)
icon.pack(side="left", padx=15)
icon.start()
root.mainloop()
Screenshots
Installation
This library is a core dependency for the LxTools suite and is typically installed automatically. If you need to install it manually from the repository:
sudo apt update
sudo apt install python3-shared-libs








