StabiloHB
Messages postés3Date d'inscriptionlundi 11 juillet 2016StatutMembreDernière intervention11 juillet 2016
-
Modifié par KX le 11/07/2016 à 19:02
StabiloHB
Messages postés3Date d'inscriptionlundi 11 juillet 2016StatutMembreDernière intervention11 juillet 2016
-
11 juil. 2016 à 18:13
Bonjour,
Je suis sur un programme qui me pose un certain nombres de problème et quand j'en résous un, un autre apparait..
Je vous expliques : J'ai une fenetre de base avec un bouton qui lance une deuxieme fenetre avec une scrollbar et des chackbuton. Sur la deuxieme fenetre il y a un autre bouton qui commande la récupération des checkbuton, ferme cette fenetre et je voudrais continuer sur la premiere fenetre (où j'y rajouterai d'autres choses).
L'erreur que j'ai ici (à ce stade) est qu'il me dit qu'un Tk() n'est pas callable par une fonction et ca m'embete...
Je vais me débrouiller pour que vous puissiez le faire tourner (je travail avec des tableurs excels)
Merci d'avance.
PS : excusez moi d'avance si il y a des fautes d'orthographes :)
import tkinter as tk
column=[['', '', 'Vh inf', 'Vh inf avec insert surmoule', 'Vh inf avec joint', 'Vh inf avec insert surmoule visible']]
# un exemple de liste que je peux utiliser
def checkbox_get():
global checklist
#Globalise la liste checklist pour ne pas la mettre en argument pour le bouton
checklist=[]
for i in range(2,len(column[0])):
print(globals()['var%s' % i].get())
checklist.append(globals()['var%s' % i].get())
#récupere les variable 0 ou 1 si la case est coché de toutes les variables
fenetre.destroy()
#ferme la fenetre
fenetre_principale()
return checklist
def main():
#Le main pour le VH inf pour l'instant qui permettera de choisir dans la liste.
fenetre_principale.destroy()
global fenetre,column
#Permet de globaliser la fenetre pour l'utiliser dans la fonction checkbox_get sans la mettre en argument
#sheet_function(i)
#Instore la lecture dans la feuille 'i'
#lire_colone(sheet, column,i)
#lis les valeurs de la colonne 'i'
x=len(column[0])
fenetre = tk.Tk()
#Initialise la fenetre
Frame1 = tk.Frame(fenetre)
#Instore 2 frame une pour la scrollbar et l'autre pour le bouton Lancer (get des value)
Frame1.pack(side="left")
Frame2 = tk.Frame(fenetre)
Frame2.pack(side="right")
vsb=tk.Scrollbar(Frame1,orient="vertical")
#La scrollbar
text=tk.Text(Frame1,width=40, height=20, yscrollcommand=vsb.set)
#Pour que les textes suivent la ScrollBar
vsb.config(command=text.yview)
vsb.pack(side="right", fill="y")
text.pack(side="left", fill="both", expand=True)
for i in range(2,len(column[0])):
#création des CheckButtons dans la ScrollBat
globals()['var%s' % i]=tk.IntVar()
#créé une variable pour chaques i, ex : var2,var3,var4 ect ...
bg = 'grey'
if i % 2 == 0:
bg='white'
cb=tk.Checkbutton(Frame1,text=column[0][i],bg=bg,variable=globals()['var%s' % i])
text.window_create("end", window=cb)
text.insert("end", "\n")
#Pour avoir une CheckButton par ligne '\n'
tk.Button(Frame2, text="Valider", command=checkbox_get).pack()
#Bouton avec la commande de get des checkbuttons
fenetre.mainloop()
def fenetre_principale():
global fenetre_principale
fenetre_principale=tk.Tk()
tk.Button(fenetre_principale, text="Vh inf", command=main).pack()
fenetre_principale.mainloop()