2.6 Option de vérification du bouton de contrôle

2.6 Option de vérification du bouton de contrôle

L'effet après l'exécution sera comme l'image ci-dessous, aucune opération n'est effectuée pour le moment.
Insérer la description de l'image ici
Si vous sélectionnez uniquement la première option, qui est python dans l'image, l'effet sera le suivant.
Insérer la description de l'image ici
Si vous sélectionnez uniquement la deuxième option, qui est c++ dans l'image, l'effet sera le suivant.
Insérer la description de l'image ici
Si les deux options sont sélectionnées, l'effet sera le suivant.
Insérer la description de l'image ici

Widget de bouton à cocher

var1 = tk.IntVar()
c1 = tk.Checkbutton(window, text='Python', variable=var1, onvalue=1, offvalue=0,
                    command=print_selection)
c1.pack()

Les paramètres sont similaires aux valeurs onvaluedes composants mentionnés précédemment radiobutton. Lorsque nous sélectionnons le bouton à cocher, onvaluela valeur 1 sera mise dans var1, puis var1 l'assigne au paramètre variable. offvalueL'utilisation est similaire, mais offvaluelorsque le bouton à cocher n'est pas sélectionné , offvaluela valeur 1 est mise dans var1 puis affectée au paramètre. variableIl s'agit de créer un composant checkbutton. Par analogie, plusieurs checkbuttons peuvent être créés.

Fonction de déclenchement

def print_selection():
    if (var1.get() == 1) & (var2.get() == 0):   #如果选中第一个选项,未选中第二个选项
        l.config(text='I love only Python ')
    elif (var1.get() == 0) & (var2.get() == 1): #如果选中第二个选项,未选中第一个选项
        l.config(text='I love only C++')
    elif (var1.get() == 0) & (var2.get() == 0):  #如果两个选项都未选中
        l.config(text='I do not love either')
    else:
        l.config(text='I love both')             #如果两个选项都选中

Par rapport à ce que nous avons appris précédemment print_selection, ce paragraphe est plus long. En fait, les fonctions sont similaires. Il ajoute juste if...elif...elseun contrôle de sélection, qui s'apparente à des commentaires de code. Comme configmentionné précédemment, il textaffiche la valeur du paramètre. Voici var1.get() == 1la var1 obtenue plus tôt, il lesonvalue=1pouren va var1.get() == 0obtenues .var1offvalu=0var2

Code

import tkinter as tk

window = tk.Tk()
window.title('my window')
window.geometry('200x200')

l = tk.Label(window, bg='yellow', width=20, text='empty')
l.pack()

def print_selection():
    if (var1.get() == 1) & (var2.get() == 0):
        l.config(text='I love only Python ')
    elif (var1.get() == 0) & (var2.get() == 1):
        l.config(text='I love only C++')
    elif (var1.get() == 0) & (var2.get() == 0):
        l.config(text='I do not love either')
    else:
        l.config(text='I love both')

var1 = tk.IntVar()
var2 = tk.IntVar()
c1 = tk.Checkbutton(window, text='Python', variable=var1, onvalue=1, offvalue=0,
                    command=print_selection)
c2 = tk.Checkbutton(window, text='C++', variable=var2, onvalue=1, offvalue=0,
                    command=print_selection)
c1.pack()
c2.pack()


window.mainloop()

Je suppose que tu aimes

Origine blog.csdn.net/m0_51366201/article/details/131790186
conseillé
Classement