Untitled
unknown
plain_text
a year ago
5.0 kB
6
Indexable
class WifiConfiguratorApp(ctk.CTk):
def __init__(self):
super().__init__()
self.title("Wi-Fi Configurator")
self.geometry("1024x600")
self.resizable(False, False)
# Variables
self.networks = []
self.selected_network = StringVar()
self.password = StringVar()
self.show_password = ctk.BooleanVar(value=False)
self.keyboard_visible = False
self.current_connection = {
"SSID": "Not connected",
"Signal Strength": "N/A",
"IP Address": "N/A"
}
self.status_message = StringVar(value="Idle")
# Create main container
self.main_container = ctk.CTkFrame(self)
self.main_container.pack(fill="both", expand=True)
# Create UI Elements
self.create_widgets()
self.scan_wifi_networks()
self.update_current_connection()
def create_widgets(self):
# Top section (always visible)
self.top_frame = ctk.CTkFrame(self.main_container)
self.top_frame.pack(fill="x", padx=20, pady=(10, 0)) # Reduced bottom padding
# Title and Status
title_label = ctk.CTkLabel(
self.top_frame,
text="Wi-Fi Configurator",
font=("Arial", 28, "bold") # Slightly smaller font
)
title_label.pack(pady=(5, 0)) # Reduced padding
self.status_label = ctk.CTkLabel(
self.top_frame,
textvariable=self.status_message,
font=("Arial", 14) # Slightly smaller font
)
self.status_label.pack(pady=(0, 5)) # Reduced padding
# Content section
self.content_frame = ctk.CTkFrame(self.main_container)
self.content_frame.pack(fill="both", expand=True, padx=20)
# Network selection
network_label = ctk.CTkLabel(
self.content_frame,
text="Select Network:",
font=("Arial", 14)
)
network_label.pack(pady=(10, 0)) # Reduced padding
self.network_dropdown = ctk.CTkOptionMenu(
self.content_frame,
variable=self.selected_network,
values=self.networks,
width=250, # Slightly smaller width
height=35 # Slightly smaller height
)
self.network_dropdown.pack(pady=(0, 5)) # Reduced padding
# Password entry
password_label = ctk.CTkLabel(
self.content_frame,
text="Password:",
font=("Arial", 14)
)
password_label.pack(pady=(5, 0)) # Reduced padding
self.password_entry = ctk.CTkEntry(
self.content_frame,
textvariable=self.password,
show="*",
width=250, # Slightly smaller width
height=35 # Slightly smaller height
)
self.password_entry.pack(pady=(0, 5)) # Reduced padding
self.password_entry.bind("<FocusIn>", self.show_keyboard)
# Action buttons in horizontal layout
button_frame = ctk.CTkFrame(self.content_frame)
button_frame.pack(pady=(5, 10)) # Reduced padding
ctk.CTkButton(
button_frame,
text="Connect",
command=self.start_connecting_to_wifi,
width=100, # Slightly smaller width
height=35 # Slightly smaller height
).grid(row=0, column=0, padx=5)
ctk.CTkButton(
button_frame,
text="Refresh",
command=self.scan_wifi_networks,
width=100, # Slightly smaller width
height=35 # Slightly smaller height
).grid(row=0, column=1, padx=5)
# Connection info (collapsible) - Made more compact
self.connection_frame = ctk.CTkFrame(self.content_frame)
self.connection_frame.pack(fill="x", pady=(0, 10)) # Reduced padding
self.ssid_label = ctk.CTkLabel(
self.connection_frame,
text="SSID: Not connected",
font=("Arial", 12) # Smaller font
)
self.ssid_label.pack(pady=1)
self.signal_label = ctk.CTkLabel(
self.connection_frame,
text="Signal Strength: N/A",
font=("Arial", 12) # Smaller font
)
self.signal_label.pack(pady=1)
self.ip_label = ctk.CTkLabel(
self.connection_frame,
text="IP Address: N/A",
font=("Arial", 12) # Smaller font
)
self.ip_label.pack(pady=1)
# Keyboard container (hidden initially)
self.keyboard_frame = ctk.CTkFrame(self.main_container)
self.keyboard = TouchKeyboard(
self.keyboard_frame,
self.password_entry,
self.hide_keyboard,
fg_color="transparent"
)
self.keyboard.pack(pady=(0, 10)) # Adjusted paddingEditor is loading...
Leave a Comment