Bonjour,

J'écris ici, car je rencontre un problème dans mon programme (et je n'ai plus assez d'ingrédients pour faire une potion d'épiphanie). Je souhaite réaliser un petit programme afin d'impressionner mes collègues (également sorcier en herbe) qui m'afficherai un menu et qui me permettrai de choisir en cliquant sur un bouton de changer de Frame afin d'afficher la recette de potion souhaitée. Sauf que...eh bien, les cadres que j'ai créés se superposent faisant un cafouillis impossible (même une potion de méli-mélo n'en fait pas autant). Afin de résoudre ce problème j'ai essayé diverses fonctions comme :frame.reset(), frame.forget(), en vain...

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
 
from tkinter import *
from tkinter import ttk
 
LARGEFONT =("Verdana", 35)
 
def next_frame(frame):
    #frame.reset()
    frame.tkraise()
 
root = Tk()
 
f1 = Frame(root, bg='#0059b3')
f2 = Frame(root, bg='#0059b3')
f3 = Frame(root, bg='#0059b3')
f4 = Frame(root, bg='#0059b3')
 
#frame_lst=[f1,f2,f3,f4]
 
for frame in (f1, f2, f3, f4):
    frame.grid(row=0, column=4, sticky='n')
 
 
Label(f1, text='Menu des potions', bg='#0059b3', font=LARGEFONT).pack()
Label(f1, text=' ', bg='#0059b3').pack()
Button(f1, text='alller pg 2', command=lambda:next_frame(f2)).pack()
 
Label(f2, text='FRAME 2').pack()
Button(f2, text='alller pg 3', command=lambda:next_frame(f3)).pack()
 
Label(f3, text='FRAME 3').pack(side='left')
Button(f3, text='alller pg 4', command=lambda:next_frame(f4)).pack(side='left')
 
Label(f4, text='FRAME 4').pack()
Button(f4, text='alller pg 1', command=lambda:next_frame(f1)).pack()
 
root['bg'] = '#0059b3'
root.minsize(width=500, height=750)
root.maxsize(width=500, height=750)
root.mainloop()
Aperçu du rendu :
Nom : menu potion.jpg
Affichages : 794
Taille : 18,9 Ko

Je vous conjure, ô grands sorciers de l'informatique de voler à mon secours.

-S-