Untitled
unknown
plain_text
a year ago
3.1 kB
7
Indexable
import customtkinter as ctk
from PIL import Image, ImageTk
import time
import threading
class LoadingScreen(ctk.CTkToplevel):
def __init__(self, parent, message="", dark_mode=False, language='EN'):
super().__init__(parent)
# Make it fullscreen
self.overrideredirect(True)
self.geometry("800x600") # Smaller size for testing
# Set colors based on dark mode
self.bg_color = '#1c1c1e' if dark_mode else '#f5f5f7'
self.text_color = 'white' if dark_mode else 'black'
self.configure(fg_color=self.bg_color)
# Create main container
self.container = ctk.CTkFrame(
self,
fg_color=self.bg_color,
corner_radius=0
)
self.container.pack(fill="both", expand=True)
# Create content frame for centering
self.content_frame = ctk.CTkFrame(
self.container,
fg_color="transparent"
)
self.content_frame.place(relx=0.5, rely=0.5, anchor="center")
# Create test animation (simple rotating label)
self.loading_label = ctk.CTkLabel(
self.content_frame,
text="↻",
font=("Arial", 48),
text_color=self.text_color
)
self.loading_label.pack(pady=20)
# Message label
self.message_label = ctk.CTkLabel(
self.content_frame,
text=message,
font=("Arial", 24),
text_color=self.text_color
)
self.message_label.pack()
# Start rotation animation
self.rotation = 0
self.animate()
def animate(self):
"""Simple rotation animation for testing"""
self.rotation = (self.rotation + 10) % 360
self.loading_label.configure(text=f"↻")
self.after(50, self.animate)
def update_message(self, new_message):
"""Update the message text"""
self.message_label.configure(text=new_message)
def test_loading_screen():
root = ctk.CTk()
root.geometry("1024x600")
# Test controls
controls_frame = ctk.CTkFrame(root)
controls_frame.pack(pady=20)
dark_mode_var = ctk.BooleanVar(value=False)
def show_loading():
loading = LoadingScreen(
root,
message="Test Loading...",
dark_mode=dark_mode_var.get()
)
# Auto-close after 3 seconds
root.after(3000, loading.destroy)
# Dark mode toggle
ctk.CTkSwitch(
controls_frame,
text="Dark Mode",
variable=dark_mode_var,
onvalue=True,
offvalue=False
).pack(pady=10)
# Show loading screen button
ctk.CTkButton(
controls_frame,
text="Show Loading Screen",
command=show_loading
).pack(pady=10)
root.mainloop()
if __name__ == "__main__":
test_loading_screen()Editor is loading...
Leave a Comment