Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Помогите, я не понимаю(Python)

Есть код:

import tkinter as tk
from tkinter import ttk, messagebox
from googletrans import Translator
from PIL import ImageTk

main_win = tk.Tk ()
main_win.geometry("800x400+350+150")
main_win.title('test')
main_win.resizable(False, False)

translator_img = ImageTk.PhotoImage(file="Image/translator.png")

def translator():
def translate_text():
translator = Translator()
source_text = text_entry.get("1.0", tk.END).strip()

if source_text == "":
messagebox.showerror("Ошибка", "Пожалуйста, введите текст для перевода.")
elif selected_src_language.get() == "" or selected_dest_language.get() == "":
messagebox.showerror("Ошибка", "Пожалуйста, выберите язык исходного текста и язык перевода.")
else:
translated_text = translator.translate(source_text, src=selected_src_language.get(),dest=selected_dest_language.get()).text
translation_entry.config(state='normal')
translation_entry.delete("1.0", tk.END)
translation_entry.insert("1.0", translated_text)
translation_entry.config(state='disabled')

translate_win = tk.Tk ()
translate_win.title("Переводчик")
translate_win.geometry("705x400+400+200")
translate_win.resizable(False, False)

label_src_language = tk.Label(translate_win, text="Исходный язык:")
label_src_language.place(x=30, y=10)

selected_src_language = tk.StringVar()
src_language_combobox = ttk.Combobox(translate_win, textvariable=selected_src_language, state='readonly')
src_language_combobox['values'] = ('en', 'ru', 'fr', 'es', 'de')
src_language_combobox.place(x=30, y=30)

label_dest_language = tk.Label(translate_win, text="Язык перевода:")
label_dest_language.place(x=500, y=10)

selected_dest_language = tk.StringVar()
dest_language_combobox = ttk.Combobox(translate_win, textvariable=selected_dest_language, state='readonly')
dest_language_combobox['values'] = ('en', 'ru', 'fr', 'es', 'de')
dest_language_combobox.place(x=500, y=30)

text_entry = tk.Text(translate_win, width=40, height=20)
text_entry.place(x=10, y=70)

translate_button = tk.Button(translate_win, text="Перевести", command=translate_text)
translate_button.place(x=317, y=40)

translation_entry = tk.Text(translate_win, width=40, height=20, state='disabled')
translation_entry.place(x=370, y=70)

translate_win.mainloop()

translator_btn = tk.Button(main_win, image=translator_img, width=64, height=64,font=('Times New Roman', 14), compound=tk.LEFT, command=translator)
translator_btn.pack()

main_win.mainloop()

Почему выводит ошибку
messagebox.showerror("Ошибка", "Пожалуйста, выберите язык исходного текста и язык перевода."
При чём я выбрал исходный язык и язык перевода

По дате
По рейтингу
Аватар пользователя
Мыслитель

Ошибка, которую вы видите, может быть вызвана тем, что значения языков не были корректно выбраны или не были установлены в переменные selected_src_language и selected_dest_language перед вызовом функции translate_text. Возможно, это произошло из-за того, что значения языков не были выбраны в выпадающих списках Combobox или из-за ошибки в логике программы.