Intégrer un resultat photo sur Tkinter Python
Résolu/FerméGEEK3_3843 Messages postés 44 Date d'inscription jeudi 27 octobre 2022 Statut Membre Dernière intervention 27 juillet 2023 - 16 janv. 2023 à 19:46
- Intégrer un resultat photo sur Tkinter Python
- Partage photo - Guide
- Photo aérienne de ma maison - Guide
- Traduction photo gratuit - Guide
- Photo de profil - Guide
- Citizen code python - Accueil - Outils
2 réponses
Bonsoir, tu t'imagines bien que sans montrer la moindre ligne de code, personne ne va pouvoir t'aider.
24 déc. 2022 à 12:02
Pas faux. Excusez moi. Je débute sur ce forum.
from tkinter import * import qrcode window = Tk() def getEntry(): res = URL_1.get() print(res) img = qrcode.make(res) img.save(name_url.get() + ".png") def clear(): URL_1.delete("0","end") name_url.delete("0","end") def window_quit(): window.destroy() window.title("QR Code Generator") window.geometry("800x600") window.config(background="#41B77F") window.iconbitmap("D:/Qr Code/logo.ico") label_title = Label(window, text="QR Code Generator", font=("Arial", 20), bg="#41B77F", fg="white") label_title.pack() # créer une entrée pr donner l'URL URL_label = Label(window, text = "URL : ", font=("Arial", 10), bg="#41B77F") URL_label.place( x = 50, y = 50) URL_1 = Entry(window) URL_1.place(x = 50, y = 80) # créer une entrée pr donner le nom du QR Code name_label = Label(window, text = "URL's name :", font=("Arial", 10), bg="#41B77F") name_label.place( x = 50, y = 110) name_url = Entry(window) name_url.place(x = 50, y = 140) Button_Confirm = Button(window, height=1, width=10, text="Confirm", command=getEntry) Button_Confirm.place(x = 50, y = 190) # !!!!!! afficher le qr code !!!!!!!!!!!!!!!!!!!! # !!!!!! partie que je cherche à résoudre !!!!!!! # créer un menu menu_bar = Menu(window) file_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="File", menu=file_menu) file_menu.add_command(label="New", command=clear) options_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="Options", menu=options_menu) options_menu.add_command(label="Quit", command=window_quit) #config fenetre pour add menu bar window.config(menu=menu_bar) window.mainloop()
Bonjour, je ne comprends pas où se situe le souci.
Tu peux afficher une image dans un simple Label, Canvas, ...
... Button_Confirm = Button(window, height=1, width=10, text="Confirm", command=show_qrcode) Button_Confirm.place(x = 50, y = 190) qrcode_label = Label(window) qrcode_label.place(x=450, y=80) # créer un menu menu_bar = Menu(window) ---
Et donc
def show_qrcode(): img = qrcode.make(res) img_name = name_url.get() + ".png" img.save(img_name) pimg = PhotoImage(file=img_name) qrcode_label.qrcode_img = pimg qrcode_label['image'] = pimg
Préfère l'utilisation de pack ou grid à place qui positionne en absolu, ce qui n'est pas une bonne chose.
24 déc. 2022 à 13:13
Bonjour,
Merci beaucoup pour l’intérêt que vous y portez.
J'ai rajouter et modifier ces lignes de codes mais une erreur apparait :
24 déc. 2022 à 13:34
bonjour, tu t'imagines bien que, sans montrer ton code modifié, personne ne va pouvoir t'aider.
26 déc. 2022 à 16:30
Salut, tu vois bien que j'ai simplement omis de mettre res = URL_1.get() au début de la fonction.
Note que si tu n'as pas nécessairement besoin de générer une image, tu peux utiliser les data (matrice) que propose le module.
import tkinter as tk import qrcode QRCODE_COLORS = 'white', 'navy' def qrcode_generate(): if not url_entry.get(): return qrc = qrcode.QRCode() qrc.add_data(url_entry.get()) qrc_size = len(qrc.get_matrix()) margin = 177 % qrc_size // 2 square_size = 177 // qrc_size * 2 qrcode_canvas['bg'] = QRCODE_COLORS[0] qrcode_canvas.delete('rect') for i, row in enumerate(qrc.get_matrix()): for j, value in enumerate(row): qrcode_canvas.create_rectangle( margin + j * square_size, margin + i * square_size, margin + square_size + j * square_size, margin + square_size + i * square_size, fill=QRCODE_COLORS[value], outline=QRCODE_COLORS[value], tag='rect', ) window = tk.Tk() url_label = tk.Label( window, text="URL : ", font=("Arial", 10), bg="#41B77F", fg='white' ) url_label.grid(row=0, column=0, padx=(10, 0), pady=(10, 0)) url_entry = tk.Entry(window, bg='black', fg='white') url_entry.grid(row=0, column=1, pady=(10, 0)) url_entry.focus() qrcode_canvas = tk.Canvas(window, width=354, height=354, bg='yellow') qrcode_canvas.grid(row=0, column=2, rowspan=3, padx=10, pady=10) window.rowconfigure(2, weight=1) generate_button = tk.Button( window, text="Générer", bg='black', fg='yellow', command=qrcode_generate ) generate_button.grid(row=1, column=0, columnspan=2, pady=10) window.mainloop()
Code qui devrait faire ce que tu souhaites, à tester.
16 janv. 2023 à 19:46
Merci, c'est fait !