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
Bonjour,
Dernièrement j'ai développé un script permettant la création de QR Code avec le module Tkinter. Mais j'aimerais ajouter à la fenêtre Tkinter le résultat obtenue c'est à dire le QR Code, or je ne sais pas comment le rajouter. En sachant que le QR s'enregistre dans l'ordinateur après saisie.
Pouvez vous donc m'indiquer le script à rajouter.
Merci pour votre réactivité.
- Intégrer un resultat photo sur Tkinter Python
- Intégrer une vidéo dans un powerpoint - Guide
- Photo aérienne de ma maison - Guide
- Partage photo - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- 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
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 !