谢博文pro 2022-09-06 20:00 采纳率: 50%
浏览 16

我的翻译器出了什么问题?

问题遇到的现象和发生背景

我准备用tkinter和translate库做一个翻译器

问题相关代码,请勿粘贴截图
from tkinter import *
from translate import Translator

def choose_from_lang():
    global lang1
    from_lang_menu = Menu(root)
    from_lang_menu.add_cascade(Label="转换语言", menu=from_lang_menu)
    from_lang_menu.add_separator()
    from_lang_menu.add_command(Label="汉语", command=lambda: lang1="ZH")
    from_lang_menu.add_separator()
    from_lang_menu.add_command(Label="English", command=lambda: lang1="EN-US")
    from_lang_menu.add_separator()
    from_lang_menu.add_command(Label="Français", command=lambda: lang1="FR")
    from_lang_menu.add_separator()
    from_lang_menu.add_command(Label="Русский", command=lambda: lang1="RU")
    from_lang_menu.add_separator()
    from_lang_menu.add_command(Label="español", command=lambda: lang1="ES")
    from_lang_menu.add_separator()
    from_lang_menu.add_command(Label="عربي", command=lambda: lang1="AR")

def choose_to_lang():
    global lang2
    to_lang_menu = Menu(root)
    to_lang_menu.add_cascade(Label="欲转换语言", menu=to_lang_menu)
    to_lang_menu.add_separator()
    to_lang_menu.add_command(Label="汉语", command=lambda: lang2="ZH")
    to_lang_menu.add_separator()
    to_lang_menu.add_command(Label="English", command=lambda: lang2="EN-US")
    to_lang_menu.add_separator()
    to_lang_menu.add_command(Label="Français", command=lambda: lang2="FR")
    to_lang_menu.add_separator()
    to_lang_menu.add_command(Label="Русский", command=lambda: lang2="RU")
    to_lang_menu.add_separator()
    to_lang_menu.add_command(Label="español", command=lambda: lang2="ES")
    to_lang_menu.add_separator()
    to_lang_menu.add_command(Label="عربي", command=lambda: lang2="AR")

def text():
    Label(root, text="请输入翻译内容").grid(row=0, column=0)
    en1 = Entry(root)
    en1.grid(row=0, column=1)

def translate():
    global lang1
    global lang2
    en2 = Entry(root, state=DISABLE)
    en2.grid(row=0, column=2)
    text1 = en1.get()
    tran = Translator(from_lang=lang1, to_lang=lang2).translate(text1)
    en2.insert(1, tran)


root = Tk()
root.title("翻译器")
Button(root, text="翻译", command=translate).grid(row=0, column=3)
lang1 = ""
lang2 = ""
root.mainloop()

运行结果及报错内容

报错:invaild syntax
报错坐标:第9行的lang1="ZH"的等号处

我的解答思路和尝试过的方法

百思不得其解

我想要达到的结果

程序运行成功

  • 写回答

1条回答 默认 最新

  • Taverry 2022-09-07 09:33
    关注

    改这样可以
    command = lambda: "ZH"
    或者先给lang1赋值,再放进去
    lang1 = "ZH"
    command = lambda: lang1

    评论

报告相同问题?

问题事件

  • 创建了问题 9月6日

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆