You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tkinter与StringVar实现字典键输出到终端的功能求助

问题排查与实现方案

你现有代码存在以下可优化/修复点:

  • 重复导入tkinter库,同时用了from tkinter import *和import tkinter as tk两种导入方式,存在冗余
  • 定义了两次没用的info()函数,还额外加了一个多余的输入框组件,和你的需求无关
  • 你现在的按钮触发逻辑只会打印输入的英文内容,没有做字典反向查找的逻辑:你的字典是俄文为键、英文为值,不能直接用dict[key]的方式取值,需要做反向匹配
  • 给组件赋值时直接链式调用pack()是不规范写法,pack()返回None,后续如果要操作组件会拿不到实例,建议分开写

修复后的完整代码

import tkinter as tk

window = tk.Tk()
window.title('俄英水果名反向查询')
window.geometry('300x200+50+75')
window.resizable(True, True)

# 俄文到英文的水果映射字典
fruit = {'яблоко':'apple', "ананас":'pineapple'}
# 提前生成英文到俄文的反向映射,避免每次查询都遍历字典,效率更高
en_to_ru = {v: k for k, v in fruit.items()}

input_str = tk.StringVar(window)

def get_ru_key():
    # 拿到输入的英文,去掉首尾空格
    en_name = input_str.get().strip()
    # 查反向映射字典,找不到就输出提示
    ru_name = en_to_ru.get(en_name, "未匹配到对应的俄文水果名")
    print(ru_name)

# 输入框
entry = tk.Entry(window, textvariable=input_str, bg='white', fg='black', width=30)
entry.pack(pady=20)
# 查询按钮
button = tk.Button(window, 
    text='查询对应俄文键',
    bg='blue',
    fg='white', 
    width=15, 
    height=2, 
    command=get_ru_key)
button.pack()

window.mainloop()

实现效果

输入pineapple点击按钮,终端会直接打印ананас,输入不存在的水果名会打印提示文本。

内容的提问来源于stack exchange,提问作者Sap2ch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:57:03