GUI i Tkinter- zajecia 11

GUI i Tkinter- zajecia 11
Photo by Maxim Berg / Unsplash
#generowanie QR i zapisywanie do pliku
import tkinter as tk
from tkinter import filedialog
from PIL import ImageTk, _tkinter_finder
import qrcode as qr

def generuj_qr():
    global qrkod, obrazek
    dane = wprowadz.get()
    qrkod = qr.make(dane)
    obrazek = ImageTk.PhotoImage(qrkod)
    generator.config(image=obrazek)

def zapisywanie_qr():
    qr_save = filedialog.asksaveasfilename(defaultextension=".png", filetypes=[("PNG files", "*.png")])
    if plik_zapis:
        qrkod.save(plik_zapis)

okno = tk.Tk()
okno.title("Generator kodów QR")
okno.geometry("800x800")

etykieta = tk.Label(okno, text="Wklej link w poniższym oknie:")
etykieta.pack(padx=20, pady=20)

wprowadz = tk.Entry(okno, width=82)
wprowadz.pack(pady=20)

przycisk = tk.Button(okno, text="Wygeneruj QR!", command=generuj_qr)
przycisk.pack(pady=20)

generator = tk.Label(okno, text="zamieniany na QR")
generator.pack(pady=20)

zapisywanie= tk.Button(okno, text="Zapisz QR", command=zapisywanie_qr)
zapisywanie.pack(pady=20)


okno.mainloop()

W tym kodzie klasę możemy nałożyć na wszystkie elementy interfejsu, dzięki czemu wszystkie etykiety i przyciski będą w jednym miejscu. Możemy w klasie utworzyć funkcję 1, która będzie definiowała same właściwości i elementy interfejsu, jak nazwę okna i jego rozmiar, ale też przyciski, okno do wpisywania. Kolejną funkcją(2) w klasie będzie wtedy generować QR. Funkcja 3 w klasie będzie zapisywać wygenerowany kod do pliku w PNG.

Aby pobrać aplikację należy zainstalować PyInstaller. Służy do przekształcenia kodu w Pythonie do samodzielnej aplikacji, powstaje plik wykonywalny w formacie EXE, który może być uruchomiony na komputerze. Obie poniższe komendy wpisujemy w terminalu w VisualStudioCode.

pip install pyinstaller
pyinstaller --onefile --w apka_qr.py