我使用tkinter和googletrans 制作了一个翻译应用程序
但当我运行它时,googletrans只返回1个单词这是我的完整代码(main.py(
#Importing modules
from tkinter import *
from googletrans import Translator
##Main Script
#Main Window
Window = Tk()
Window.geometry("400x700")
Window.resizable(False, False)
Window.configure(bg="#e1f4f3")
#Defs
def translate():
ans = inp.get(1.0)
trans = Translator()
t = trans.translate(
ans, src="id", dest="en"
)
trans_txt.config(state="normal")
trans_txt.delete(END, "end")
trans_txt.insert(END, t.text)
trans_txt.config(state="normal")
#Widgets
#main frame
main = Frame(Window, width=300, height=500, bg="#00d1ff", bd=0, highlightthickness=0)
#entries
#input user
inp = Text(main, bd=0, highlightthickness=0, font=("Gotham Book", 20))
inp.pack_propagate(0)
#translate btn
translate_btn = Button(main, bd=0, highlightthickness=0, font=("Gotham Book", 20), text="Translate", command=translate)
translate_btn.configure(highlightbackground="light blue")
translate_btn.pack_propagate(0)
#translation
trans_txt = Text(main, bd=0, highlightthickness=0, font=("Gotham Book", 20))
trans_txt.config(state="disabled")
trans_txt.pack_propagate(0)
#Packs
main.place(anchor="c", rely=.5, relx=.5)
inp.place(x=150, anchor="c", y=100, height=90, width=250)
translate_btn.place(x=150, anchor="c", y=250)
trans_txt.place(x=150, anchor="c", y=400, height=90, width=250)
#Window.mainloop()
Window.mainloop()
main.py返回
H
当我键入";海;。在inp窗口小部件中
但在另一个代码文件(trans_test.py(中它返回正确翻译的单词这是trans_test.py完整代码
#Importing modules
from googletrans import Translator
#trans()
def trans(text):
trans = Translator()
t = trans.translate(
text, src="id", dest="en"
)
return t.text
#test
print(trans("Hai"))
trans_test.py返回
Hi
如果有人回答这个问题,谢谢:(
只得到h
的原因是您的translate
函数正在尝试翻译h
,即h
。在第ans = inp.get(1.0)
行,您只需要获得第1行和第0列的字符,也就是1.0
,您需要获得完整的文本,这可以通过执行ans = inp.get(1.0, 'end')
来完成。
此外,我想解决 此外,如果您试图使第二个文本小部件成为只读文本,那么您只需要在插入后禁用该状态。 改进的trans_txt.delete(END, "end")
问题。如果你试图完全删除文本,那么你需要从开始索引删除到结束索引trans_txt.delete(1.0, "end")
END
和"end"
是相同的值,不要混淆。translate
功能def translate():
ans = inp.get(1.0, 'end')
trans = Translator()
t = trans.translate(ans, src="id", dest="en")
trans_txt.config(state="normal")
trans_txt.delete(1.0, "end")
trans_txt.insert(END, t.text)
trans_txt.config(state="disabled")