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 - 23 déc. 2022 à 19:55
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é.


A voir également:

2 réponses

Bonsoir, tu t'imagines bien que sans montrer la moindre ligne de code, personne ne va pouvoir t'aider.

0
GEEK3_3843 Messages postés 44 Date d'inscription jeudi 27 octobre 2022 Statut Membre Dernière intervention 27 juillet 2023
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()

0

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.

0
GEEK3_3843 Messages postés 44 Date d'inscription jeudi 27 octobre 2022 Statut Membre Dernière intervention 27 juillet 2023 > ouplaboum
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 :

0
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 1 557 > GEEK3_3843 Messages postés 44 Date d'inscription jeudi 27 octobre 2022 Statut Membre Dernière intervention 27 juillet 2023
24 déc. 2022 à 13:34

bonjour, tu t'imagines bien que, sans montrer ton code modifié, personne ne va pouvoir t'aider.

0
ouplaboum > GEEK3_3843 Messages postés 44 Date d'inscription jeudi 27 octobre 2022 Statut Membre Dernière intervention 27 juillet 2023
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.

1
GEEK3_3843 Messages postés 44 Date d'inscription jeudi 27 octobre 2022 Statut Membre Dernière intervention 27 juillet 2023 > yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024
16 janv. 2023 à 19:46

Merci, c'est fait !

1