Как добавить результаты из контрольной кнопки и текстовые записи в графическом интерфейсе в словарь в формате ключ: значение? - PullRequest
0 голосов
/ 24 сентября 2019

Попытка создать простое приложение со списком покупок, в котором пользователь установит флажок, затем введет количество товаров.Нажатие кнопки должно вывести имя с номером элемента.например, яблоки 10, 1 банан и т. д. Я хотел бы вырастить словарь фруктов и позже добавить другие элементы в GUI, такие как мясо / рыба, общие и т. д.

Я думал, что логичным способом было бы создатьdictionary {ключ: значение}, где ключом будет имя флажка, а значением будет число внутри текстового поля ввода.

Не могли бы вы показать мне, как это сделать?Спасибо!

пытался следовать некоторым примерам, но не мог понять, как извлечь текст = "Яблоки" из флажка и добавить это как ключ в словарь.Также играл с лямбдой в качестве вывода, но на самом деле ничего не материализовалось, потому что во всех примерах уже был создан словарь.Вот мой пример.

from tkinter import *

item_list = []
items_dict = {}

    # mget gets output from checkboxes and prints results
def mget():
    print(apples.get(), pears.get(), bananas.get(),apricots.get())
    print(apples_qnty.get(),pears_qnty.get(), bananas_qnty.get(), 
    apricots_qnty.get())
    #item_list.append(apples.get)

 window = Tk()


apples = IntVar()
chk_apples = Checkbutton(window,text="Apples", 
variable=apples).grid(row=1,sticky=W) 
apples_qnty = StringVar()
apples_qnty = Entry(width=3)
apples_qnty.grid(column=1, row = 1)
item_list.append("Apples")

pears = IntVar()
chk_pears = Checkbutton(window,text="Pears", 
variable=pears).grid(row=2,sticky=W)
pears_qnty = StringVar()
pears_qnty = Entry(width=3)
pears_qnty.grid(column=1, row = 2)
item_list.append("Pears")

bananas = IntVar()
Checkbutton(window,text="Bananas", 
variable=bananas).grid(row=3,sticky=W)
bananas_qnty = StringVar()
bananas_qnty = Entry(width=3)
bananas_qnty.grid(column=1, row = 3)
item_list.append("Bananas")


apricots = IntVar()
Checkbutton(window,text="Apricots", 
variable=apricots).grid(row=4,sticky=W)

apricots_qnty = StringVar()
apricots_qnty = Entry(width=3)
apricots_qnty.grid(column=1, row = 4)
item_list.append("Apricots")

print(item_list)  # just to see list


Button(window,text="print check box states", command = mget).grid(row=5,sticky=W)
Button(window,text="exit", command =window.destroy).grid(row=5,sticky=E)

window.mainloop()

Я бы хотел, чтобы программа выполняла следующие действия: пользователь проверял кнопки проверки и вводил номера элементов.нажатие кнопки приведет к выводу выбранных элементов.Например, яблоки 4, бананы 1 и т. Д. Если эта кнопка не отмечена, ничего не выводится.

...