Intégrer un resultat photo sur Tkinter Python

Résolu

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é.


GEEK3_3843

2 réponses

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

    1. 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()

      1. 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.

      2. @ouplaboum

        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 :

      3. Contributeur
        @GEEK3_3843

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

      4. @yg_be
        from tkinter import *
        import qrcode
        from tkinter import filedialog
        
        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()
        
        def open_module():
            filename = filedialog.askopenfilename(initialdir = "/", title = "Select a File", filetypes = (("Text files", "*.txt*"), ("all files", "*.*")))
            label_file_explorer.configure(text="File Opened: "+filename)
        
        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
        
        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=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)
        
        file_menu = Menu(menu_bar, tearoff=0)
        menu_bar.add_cascade(label="File", menu=file_menu)
        file_menu.add_command(label="New", command=clear)
        file_menu.add_command(label="Print", command=clear)
        file_menu.add_command(label="Open module", command=open_module)
        
        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()

        Le voila

      5. Contributeur
        @GEEK3_3843

        res est, en effet, indéfini.

        La ligne 8 doit être déplacée avant la ligne 25.