Je crée la checkbouttons ici:
# function is called when a button is clicked def delHist(): for i in range(len(var)): if var[i].get()==1: # checking if the checkbutton is checked # want to print the text in the checkbutton here
3 Réponses :
Si je comprends correctement (corrigez-moi dans des commentaires), voici ce dont vous avez besoin:
from tkinter import * tk = Tk() var = [] buttons = [] k=0 def delHist(): for i in range(len(var)): if var[i].get()==1: print(buttons[i]['text']) for i in 'abcde': var.append(IntVar()) buttons.append(Checkbutton(tk, text = i[0], variable = var[k], wraplength=500)) buttons[-1].pack() k+=1 Button(text='delHist', command=delHist).pack()
tkinter code> est le POO, donc l'opposé a lieu.
Étendez l'objet tk.checkbutton tk.checkbutton et oubliez abbout la variable
= tk.invar () code>.
L'étendue Checkboutton code> connaît son
texte = code> et
coché code> état.
h2 >
Checkbutton: option 1=False
Checkbutton: option 2=True
Checkbutton: option 3=False
Si vous définissez le Vous auriez besoin de passer d'abord à partir de Suivant, vous pouvez modifier Onvalue code> sur la même valeur que le texte (ou quelle que soit la valeur souhaitée), la variable contiendra cette valeur ou une chaîne vide.
Intvar code> à
stringvar code>, puis définissez le
Onvalue code> et
horsvalue code>: p>
delhist code> pour imprimer simplement les valeurs qui ne sont pas la chaîne vide: p>
Est-ce que cela répond à votre question? Comment obtenir le texte d'un checkboutton à Python ? (Tkinter)
@Themaker J'ai modifié la question pour expliquer pourquoi cela ne fonctionne pas pour moi.
Est-ce que cela répond à votre question? Stackoverflow.com/questions/48436622 / ...
Vous pouvez utiliser
stringvar code> au lieu de
intvar code> et définir
onvalue = i [0] code> et
horsvalue = '' code> pour chaque Checkboutton. Ensuite, si
var [i] .get () code> renvoie quelque chose, alors le checkboutton est coché et vous pouvez imprimer le contenu.