Код должен:
- получить значение из виджета entry1
- на основе этого значения в качестве ключа, посмотреть значения словаря
- отобразить эти значенияв виджете entry2 PyCharm выдает KeyError: '' error.
Код не учитывает ошибку ввода пользователя, т. е. давайте предположим, что значение в виджете entry1 является допустимым ключом myDict.
import tkinter as tk
from tkinter import ttk
window = tk.Tk()
window.geometry('300x300')
window.title('test')
def showResult():
x = var.get()
message = list(my_Dict[x].values())
result.set(str(message))
my_Dict= {'A': {'aa': 1}, 'B': {'bb': 2}, 'C': {'cc': 3}}
label = ttk.Label(window, text='Enter here').grid(row=0, column=0)
var = tk.StringVar()
entry1 = ttk.Entry(window, textvariable=var).grid(row=0, column=1)
label = ttk.Label(window, text='"Result here').grid(row=2, column=0)
result = tk.StringVar()
entry2 = ttk.Entry(window, textvariable=result).grid(row=2, column=1)
btn = ttk.Button(window, text='SHOW', command=showResult())
btn.grid(row=1, column=0)
window.mainloop()
Идея состоит в том, что когда пользователь вводит «A» в entry1 и нажимает кнопку, в виджете entry2 появится «aa: 1».
Вместо этого я получаю следующее:
File "...../test.py", line 10, in showResult
message = list(my_Dict[x].values())
KeyError: ''
Тот же скрипт отлично работает вне Tkinter, поэтому он должен быть связан с GUI.Может быть, PyCharm знает, что в то время запись entry1 пуста и, следовательно, var = '' (и нет '' в my_Dict}? IDK ...
Спасибо за любую помощь!