Dělám program, který dává uživateli na výběr zaškrtávacích políček vybrat. Zaškrtávacích políček jsou automaticky vytvořeny s poutkem. Jsem schopen zjistit, která políčka mají být zaškrtnuto, ale nejsem schopen změnit stav příslušných políček sám později. Konkrétně, chci odstranit všechny klíšťata z zaškrtnuta políčka po klepnutí na tlačítko, ale více obecně, rád bych věděl, jak změnit stav jednotlivých políček. Zde je ukázka kódu:
import tkinter
from tkinter import *
tagsValue = {'Beef': 0, 'Fish': 0, 'Chicken': 0, 'Pork': 0, 'Lamb': 0, 'Egg': 0, 'Ham': 0}
def execute():
my_text.delete('1.0', END)
for tag in tagsValue:
if tagsValue[tag].get() == '1':
my_text.insert(INSERT, ('\n' + tag))
root = Tk()
root.title('User Selection')
root.geometry("300x300")
my_button = Button(root, text ="Submit",command = execute)
my_text = Text(root)
for tag in list(tagsValue):
tagsValue[tag] = Variable()
l = Checkbutton(root,justify=LEFT,width=8, text=tag, variable=tagsValue[tag])
l.deselect()
l.pack()
my_button.pack()
my_text.pack()
root.mainloop()
Snažil jsem se pomocí věci, jako je tagsValue['Ham'] = '0'
a tagsValue['Ham'] = 0
před root.mainloop()
ale ty nefungují. Jsem si vědom pomocí ['state']
změnit stav políčka, ale protože políčka nejsou pojmenované, to nemůžu použít. (Nemůžu název políčka individuálně, protože mám mnoho mnoho mnoho políčka). Tak, jak mohu změnit stav políčka?
def clear
funguje perfektně, děkuji, ale když se snažím pomocítagsValue['Ham'].set('0')
to není zaškrtnoutHam
zaškrtávací políčko. Změnil jsemVariable()
kIntVar()
jak navrhl, tak jsem změnil řádektagsValue['Ham'].set(0)
a udělal další změny v mémdef execute
ale to stále nefunguje