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 deintvar code> et définironvalue = i [0] code> ethorsvalue = '' code> pour chaque Checkboutton. Ensuite, sivar [i] .get () code> renvoie quelque chose, alors le checkboutton est coché et vous pouvez imprimer le contenu.