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

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