簡體   English   中英

Python - 在輸入框中輸入文字后如何自動翻譯

[英]Python - how to automatically translate after inputing the text in the input box

希望你們一切都好。 我正在嘗試使用 python 進行編碼,以使谷歌進行翻譯。 它已經成功完成,但現在的一個挑戰是我不想按下翻譯按鈕,我希望在輸入字段中輸入文本后自動按下翻譯按鈕? 你能幫我建議一些想法嗎?

我的代碼如下:

import tkinter as tk
from tkinter import Button, Frame, font
from tkinter.constants import BOTTOM, END
from typing import Text
import googletrans
#print(googletrans.LANGUAGES)
root = tk.Tk()
from googletrans import Translator
# t = Translator()
# b = a.text
# print(b)
root.geometry("720x900")
root.title("google translator")

title1 = tk.Label(
    root,
    text="Google Translator",
    font=('arial',20)
)
# title2 = tk.Label(
#     root,
#     text="put what you need to translate to Vietnamese",
#     font=('Arial',15),
# )

title1.pack(pady=5)
# title2.pack(pady=5)
# box1 = Text(root, width=30,height=10, font=('arial',12))
box = tk.Text(
    root,
    width=55,
    height=15,
    font=('Roboto',14)
)
box.pack(pady=10)

def tran():
    input1 = box.get("1.0","end")
    t=Translator()
    print(input1)
    a = t.translate(input1,src='en',dest='vi')
    b = a.text
    box1.insert(END,b)
def clear():
    box.delete("1.0","end")
    box1.delete("1.0","end")
Button_frame=tk.Frame(root).pack(side=BOTTOM)
clear_button = tk.Button(
    Button_frame,
    text="clear content",
    font=('Arial',10,'bold'),
    bg = '#303030',
    fg="#FFFFFF",
    command=clear
)
trans_button = tk.Button(
    Button_frame,
    text="translate",
    font=('Arial',10,'bold'),
    bg = 'yellow',
    fg="red",
    command=tran
)
clear_button.place(x=290,y=410)
trans_button.place(x= 150,y=410)
# clear_button.pack(pady=5)
#clear_button.pack(pady=5)
box1 = tk.Text(
    root,
    width=55,
    height=15,
    font=('Roboto',14)
)
box1.pack(pady=60)
root.mainloop()

您好,我認為您在這里需要的是使用.trace_add()方法,這樣您就可以觸發一個事件,該事件是您在框中寫入時的翻譯方法。

您需要將StringVar()分配給兩個文本變量。

接下來,您必須設置.trace_add ('w',tran) (其中“w”表示寫入)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM