Bonjour, je voudrais savoir comment faire pour créer un bouton avec les coins arrondis en python 2.7.3 avec Tkinter.
Je tiens à préciser que j'ai fais des recherches sans résultats.
Merci d'avance ;)
Version imprimable
Bonjour, je voudrais savoir comment faire pour créer un bouton avec les coins arrondis en python 2.7.3 avec Tkinter.
Je tiens à préciser que j'ai fais des recherches sans résultats.
Merci d'avance ;)
Bonjour,
De base pas possible.
Avez vous penser à utiliser un Canvas pour cela ?
@+
Exemple
Après à vous de faire la forme voulue.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/usr/bin/python # -*- coding: utf-8 -*- # # try: import Tkinter as tk except ImportError: import tkinter as tk root = tk.Tk() c = tk.Canvas(root, bg=root.cget("bg"), width=60, height=30) c.create_oval(1, 1, 59, 29, fill="grey", outline=root.cget("bg")) c.create_text(30, 14, text="Exit") c.pack() c.bind("<Button-1>", lambda e: root.destroy()) root.mainloop()
@+
Bon je laisse les boutons tel quel, mais je ne vois pas comment faire un rectangle aux coins arrondis.
Au revoir et merci de votre réponse.
Comme vous voulez.
Sinon il suffit de savoir comment calculer les coordonnés des points d'un cercle et utiliser Canvas.create_polygon()
@+
Ah oui, ce n'est pas bête, mais je dois rendre mon projet mardi, je préfère le finir avant de m'attarder sur des petits détails :)
Merci encore, je me servirai surement de vos astuces plus tard.
Avec un .create_polygon() à la place des .create_oval/.create_rectangle vous allez pouvoir jouer sur outline pour donner une impression de relief.Code:
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 #!/usr/bin/python # -*- coding: utf-8 -*- # # try: import Tkinter as tk except ImportError: import tkinter as tk root = tk.Tk() # Par exemple b = tk.Button() bg = b.cget("bg") font = b.cget('font') fg = b.cget("fg") #b.destroy() #del(b) #b.pack() # c = tk.Canvas(root, bg=bg, width=60, height=30, bd=0) c.create_oval(0, 0, 15, 15, fill="grey", outline=root.cget("bg")) c.create_oval(45, 0, 60, 15, fill="grey", outline=root.cget("bg")) c.create_oval(0, 15, 15, 30, fill="grey", outline=root.cget("bg")) c.create_oval(45, 15, 60, 30, fill="grey", outline=root.cget("bg")) c.create_rectangle(0, 7, 15, 23, fill="grey", outline="grey") c.create_rectangle(45, 7, 60, 23, fill="grey", outline="grey") c.create_rectangle(7, 0, 53, 30, fill="grey", outline="grey") c.create_text(30, 14, text="Exit", font=font, fill=fg) c.pack() c.bind("<Button-1>", lambda e: root.destroy()) root.mainloop()