GUI i Tkinter- zajecia 11
#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