Как получить доступ к этим ставкам в моем коде Python tkinter без TypeError: объект 'dict_keys' не может быть подписан - PullRequest
0 голосов
/ 11 декабря 2019

импорт tkinter как запросы на импорт tk

класс MyApp: def init (self): self.master = tk.Tk () self.master.geometry ('600x400 + 200 +150 ') self.master.config (bg =' # 008080 ') self.frame = tk.Frame (self.master, bg =' # 008080 ') self.frame.pack ()

    RATES = {
        "Australian Dollar":1.4099,
        "Brazilian Real":3.7927,
        "Canadian dollar":1.3375,
        "Switzerland Franc":0.9964,
        "China Yuan":6.7131,
        "Euro":0.8845,
        "United Kingdom Pound":0.763,
        "Hungarian Forint":279.337,
        "Indian Rupees":68.98,
        "Japanese Yen":110.5194,
        "Kenyan shilling":100.6989,
        "Korean Won":1133.5973,
        "Malawian Kwacha":723.985,
        "New Zealand dollar":1.4558,
        "Oman Riyal":0.385,
        "Tanzanian Shilling":2344.103,
        "Ugandan Shilling":3708.5025,
        "United States Dollar":1,
        "South African Rand":14.3397,
        "Zambian Kwacha":12.029
        }

    variable=tk.StringVar(self.frame)
    variable.set(None)
    self.opt=tk.OptionMenu(self.frame, variable, *RATES, relief='raised', bd=2, width=8, bg='#008085')
    self.opt.grid(row=2, column=2, padx=10, pady=10)



    self.master.mainloop()    

Capp = MyApp ()

1 Ответ

0 голосов
/ 11 декабря 2019

Решение, предоставленное stovfl, является правильным, но оставляя остальную часть конфигурации OptionMenu в функции выдает ошибки, потому что инициализатор для OptionMenu со списком элементов отличается. Поэтому вы должны сделать конфиг с отдельной функцией:

    self.opt=tk.OptionMenu(self.frame, variable, *list(RATES.keys()))
    self.opt.config(relief='raised', bd=2, width=8, bg='#008085')
    self.opt.grid(row=2, column=2, padx=10, pady=10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...