0
votes

Obtenir du texte d'un checkboutton de la variable de Tkinter

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


4 commentaires

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 au lieu de intvar et définir onvalue = i [0] et horsvalue = '' pour chaque Checkboutton. Ensuite, si var [i] .get () renvoie quelque chose, alors le checkboutton est coché et vous pouvez imprimer le contenu.


3 Réponses :


0
votes

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()


0 commentaires

0
votes

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.

 Entrez la description de l'image ici h2 >
Checkbutton: option 1=False
Checkbutton: option 2=True
Checkbutton: option 3=False


0 commentaires

1
votes

Si vous définissez le Onvalue 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.

Vous auriez besoin de passer d'abord à partir de Intvar à stringvar , puis définissez le Onvalue et horsvalue : xxx

Suivant, vous pouvez modifier delhist pour imprimer simplement les valeurs qui ne sont pas la chaîne vide: xxx


0 commentaires