Bonjour,
je travaille sur tkinter depuis peu et sur un mac avec la version python 3.6 et pyzo.
J'ai fait un programme et je me suis rendue compte que je ne pouvais pas récupérer la valeur d'un checkbutton que je créé.
J'ai regardé de nombreux forums, et je ne comprends toujours pas… D'autant plus que ce programme fonctionne sur un autre ordinateur (je travaille en trinôme). Le problème est que quand je clique sur le checkbutton, la valeur enregistrée est 0 et non 1.
Merci d'avance pour votre aide et voici mon programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
from tkinter import*
 
def suivant1():
    def suivant2():
        page3=Tk()
        page2.destroy()
    def massemolaire(C,O,H,N,Fe,Na,K,I,Cl,Ca):
        m=[C,O,H,N,Fe,Na,K,I,Cl,Ca]
        M=12*m[0]+16*m[1]+m[2]+m[3]*14+m[4]*55.8+m[5]*23+m[6]*39.1+m[7]*126.9+m[8]*35.5+m[9]*40.1
        return(M) 
    V=vmode1.get()
    if V==1:
        print('non')
    else:
        print('oui')
    c=int(sp1.get())
    o=int(sp2.get())
    h=int(sp3.get())
    n=int(sp4.get())
    fe=int(sp5.get())
    na=int(sp6.get())
    k=int(sp7.get())
    i=int(sp8.get())
    cl=int(sp9.get())
    ca=int(sp10.get())
    mm=massemolaire(c,o,h,n,fe,na,k,i,cl,ca)
    page1.destroy()
    page2=Tk()
    l2=Label(page2,text='Choisir le type de molecule')
    l2.pack()
    b1=Button(page2,text='acide fort',command=suivant2)
    b1.pack()
    b2=Button(page2,text='base forte',command=suivant2)
    b2.pack()
    b3=Button(page2,text='acide faible',command=suivant2)
    b3.pack()
    b4=Button(page2,text='base faible',command=suivant2)
    b4.pack()
    b5=Button(page2,text='ampholyte',command=suivant2)
    b5.pack()
    print(mm)
 
 
page1=Tk()
l0=Label(page1,text='METHODE RP',bg='blue')
l0.grid(row=0,column=2)
l1=Label(page1,text='Donner la composition de votre molecule')
l1.grid(row=1,column=2)
li1=Label(page1,text='nombre de carbone')
li1.grid(row=2,column=1)
li2=Label(page1,text='nombre d oxygene')
li2.grid(row=3,column=1)
li3=Label(page1,text='nombre d hydrogene')
li3.grid(row=4,column=1)
li4=Label(page1,text='nombre d azote')
li4.grid(row=5,column=1)
li5=Label(page1,text='nombre de fer')
li5.grid(row=6,column=1)
li6=Label(page1,text='nombre de sodium')
li6.grid(row=7,column=1)
li7=Label(page1,text='nombre de potassium')
li7.grid(row=8,column=1)
li8=Label(page1,text='nombre d iode')
li8.grid(row=9,column=1)
li9=Label(page1,text='nombre de chlore')
li9.grid(row=10,column=1)
li10=Label(page1,text='nombre de calcium')
li10.grid(row=11,column=1)
sp1=Spinbox(page1,from_=0, to=10)
sp1.grid(row=2,column=3)
sp2=Spinbox(page1,from_=0, to=30)
sp2.grid(row=3,column=3)
sp3=Spinbox(page1,from_=0, to=10)
sp3.grid(row=4,column=3)
sp4=Spinbox(page1,from_=0, to=10)
sp4.grid(row=5,column=3)
sp5=Spinbox(page1,from_=0, to=10)
sp5.grid(row=6,column=3)
sp6=Spinbox(page1,from_=0, to=10)
sp6.grid(row=7,column=3)
sp7=Spinbox(page1,from_=0, to=10)
sp7.grid(row=8,column=3)
sp8=Spinbox(page1,from_=0, to=10)
sp8.grid(row=9,column=3)
sp9=Spinbox(page1,from_=0, to=10)
sp9.grid(row=10,column=3)
sp10=Spinbox(page1,from_=0, to=10)
sp10.grid(row=11,column=3)
l2=Label(page1,text='mode d introduction de l espèce acido basique')
l2.grid(row=14,column=2)
bo=Button(page1,text='suivant',command=suivant1)
bo.grid(row=16,column=2)
vmode1=IntVar()
vmode2=IntVar()
vmode3=IntVar()
mode1=Checkbutton(page1,variable=vmode1,text='ajout d un réactif solide')
mode1.grid(row=15,column=1) 
mode2=Checkbutton(page1,variable=vmode2,text='ajout d un réactif liquide')
mode2.grid(row=15,column=2) 
mode3=Checkbutton(page1,variable=vmode3,text='solution de concentration donnée')
mode3.grid(row=15,column=3)
c'est un peu long donc j'en ai fais un autre plus court qui ne marche pas non plus (même problème) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
from tkinter import*
 
def F1():
    print(vmode1.get())
 
page1=Tk()
vmode1=IntVar()
 
mode1=Checkbutton(page1,variable=vmode1,text='ajout d un réactif solide',command=F1)
mode1.grid(row=15,column=1)
quand je clique j'obtiens 0….