Bonjour à tous,
Alors je vous explique mon 'problème': on a le code suivant:
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 from tkinter import * import customtkinter class App(customtkinter.CTk): WIDTH = 1920 HEIGHT = 1080 def __init__(self): super().__init__() self.geometry(f"{App.WIDTH}x{App.HEIGHT}") self.maxsize(width=1920, height=1080) self.canvas1 = Canvas(self, width= 500, height=700, bg='cyan') self.canvas2 = Canvas(self, width= 500, height=700, bg='pink') self.frame1 = Frame(self.canvas1, width= 500, height=700, bg='blue') self.frame2 = Frame(self.canvas2, width= 500, height=700, bg='red') self.canvas1.grid(row = 0, column=0, sticky='nsew') self.canvas2.grid(row = 0, column=1, sticky='nsew') self.frame1.grid(row = 0, column=0, sticky='nsew') self.frame2.grid(row = 0, column=0, sticky='nsew') self.canvas1.grid_propagate(False) bu1 = Button(self.frame1, text='test') bu1.grid(row=0, column=0, padx = 100) bu2 = Button(self.frame1, text='test') bu2.grid(row=0, column=1, padx = 100) if __name__ == "__main__": app = App() app.mainloop()
Mon but étant que les boutons apparaissent mais que le background de la frame ne soit pas visible, y'a-t-il une astuce pour cela?
La méthode grid_forget() ne me convient pas car les boutons disparaissent logiquement avec)
Le fait de fixer la même couleur de bg entre ma frame et le canvas correspondant, ne me convient pas non plus car je compte insérer une image dans ce canvas.
Le fait de mettre cette image dans un Label et ensuite mettre ce label sur la frame en question, ne me convient pas non plus car derrière j'utilise des grid pour placer mes widgets. Et puis je n'ai pas envie de hack alors que si c'était possible d'insérer une image directement dans une Frame cela aurait été plus simple et plus propre (d'ailleurs je n'ai pas compris pourquoi cela n'est pas intégré comme pour d'autres widgets).
Bref Le but est donc de donner 'l'illusion' que mes boutons seront directement fixé sur le canvas et non sur une frame.
-Vous allez me dire 'pourquoi tu ne mettrais pas directement tes boutons sur le canvas dans ce cas là'
-Et bien c'est parce-que je compte créer une scrollbar pour survoler une liste de boutons, or je serai obligé de mettre une frame en tant que window pour pouvoir survoler avec ma scrollbar.
Quelqu'un pourrait m'aider à trouver une solution svp?
Merci à tous.
Partager