Improve interactive tab buttons with Unicode icons

- Add Unicode icons to the connect, disconnect and send buttons in the interactive tab
This commit is contained in:
2025-02-18 00:11:42 +03:00
parent ce81100150
commit c0d8fd8d89

View File

@@ -832,8 +832,22 @@ class SerialAppGUI(tk.Tk):
def create_interactive_tab(self, frame):
control_frame = ttk.Frame(frame)
control_frame.pack(fill=X, pady=5)
ttk.Button(control_frame, text="Подключиться", command=self.connect_device).pack(side=LEFT, padx=5)
ttk.Button(control_frame, text="Отключиться", command=self.disconnect_device).pack(side=LEFT, padx=5)
# Кнопка подключения с иконкой
connect_btn = ttk.Button(
control_frame,
text="⚡ Подключиться", # Unicode символ для "молнии"
command=self.connect_device
)
connect_btn.pack(side=LEFT, padx=5)
# Кнопка отключения с иконкой
disconnect_btn = ttk.Button(
control_frame,
text="✕ Отключиться", # Unicode символ для "крестика"
command=self.disconnect_device
)
disconnect_btn.pack(side=LEFT, padx=5)
self.interactive_text = CustomText(frame, wrap="word", height=20)
self.interactive_text.pack(fill=BOTH, expand=True, padx=5, pady=5)
@@ -843,7 +857,14 @@ class SerialAppGUI(tk.Tk):
ttk.Label(input_frame, text="Команда:").pack(side=LEFT, padx=5)
self.command_entry = CustomEntry(input_frame, width=50)
self.command_entry.pack(side=LEFT, padx=5)
ttk.Button(input_frame, text="Отправить", command=self.send_command).pack(side=LEFT, padx=5)
# Кнопка отправки с иконкой
send_btn = ttk.Button(
input_frame,
text="➤ Отправить", # Unicode символ для "стрелки"
command=self.send_command
)
send_btn.pack(side=LEFT, padx=5)
# Подключение к устройству
def connect_device(self):
@@ -1318,13 +1339,6 @@ class SerialAppGUI(tk.Tk):
)
self.tftp_indicator.pack(side=tk.LEFT)
# Создаем всплывающие подсказки
self.tooltip = None
self.connection_indicator_frame.bind('<Enter>', self.show_connection_tooltip)
self.connection_indicator_frame.bind('<Leave>', self.hide_connection_tooltip)
self.tftp_indicator_frame.bind('<Enter>', self.show_tftp_tooltip)
self.tftp_indicator_frame.bind('<Leave>', self.hide_connection_tooltip)
ttk.Separator(self.status_bar, orient=tk.VERTICAL).pack(side=tk.LEFT, fill=tk.Y, padx=5)
# Остальные элементы статус бара...
@@ -1346,57 +1360,6 @@ class SerialAppGUI(tk.Tk):
self.version_label = ttk.Label(self.status_bar, text=f"Версия: {VERSION}", padding=(5, 2))
self.version_label.pack(side=tk.RIGHT)
def show_connection_tooltip(self, event):
x = event.widget.winfo_rootx()
y = event.widget.winfo_rooty() + 20
# Удаляем предыдущий tooltip если есть
self.hide_connection_tooltip(event)
self.tooltip = tk.Toplevel(self)
self.tooltip.wm_overrideredirect(True)
self.tooltip.wm_geometry(f"+{x}+{y}")
label = ttk.Label(
self.tooltip,
text="Состояние COM порта: " +
("Подключено" if self.connection else "Отключено"),
justify=tk.LEFT,
background="#ffffe0",
relief=tk.SOLID,
borderwidth=1,
padding=(5, 2)
)
label.pack()
def show_tftp_tooltip(self, event):
x = event.widget.winfo_rootx()
y = event.widget.winfo_rooty() + 20
# Удаляем предыдущий tooltip если есть
self.hide_connection_tooltip(event)
self.tooltip = tk.Toplevel(self)
self.tooltip.wm_overrideredirect(True)
self.tooltip.wm_geometry(f"+{x}+{y}")
label = ttk.Label(
self.tooltip,
text="Состояние TFTP сервера: " +
("Запущен" if self.tftp_server and self.tftp_server.running else "Остановлен"),
justify=tk.LEFT,
background="#ffffe0",
relief=tk.SOLID,
borderwidth=1,
padding=(5, 2)
)
label.pack()
def hide_connection_tooltip(self, event):
if self.tooltip:
self.tooltip.destroy()
self.tooltip = None
# Обновляем метод update_status_bar
def update_status_bar(self):
# Обновляем индикатор подключения COM порта