Einführung
Dieses Projekt führt Sie durch den Prozess der Erstellung eines QR-Code-Generators mit Python. Sie werden lernen, wie Sie eine Projektdatei erstellen, die erforderlichen Bibliotheken importieren, die Funktion zum Generieren von QR-Codes definieren, die Funktion zum Speichern von QR-Codes definieren, das Hauptfenster und die Elemente für die Schnittstelle des QR-Code-Generators erstellen und die Hauptfunktion ausführen.
👀 Vorschau

🎯 Aufgaben
In diesem Projekt werden Sie lernen:
- Wie man einen QR-Code-Generator mit Python erstellt
- Wie man Bibliotheken wie
qrcode,tkinterundPILimportiert - Wie man Funktionen zum Generieren und Speichern von QR-Codes definiert
- Wie man eine Benutzeroberfläche zum Generieren und Speichern von QR-Codes erstellt
🏆 Errungenschaften
Nach Abschluss dieses Projekts werden Sie in der Lage sein:
- Die
qrcode-Bibliothek zum Generieren von QR-Codes zu verwenden - Die
tkinter-Bibliothek zum Erstellen einer grafischen Benutzeroberfläche zu verwenden - Generierte QR-Codes in Dateien zu speichern
- Generierte QR-Codes auf einer Leinwand anzuzeigen
Erstelle die Projekt-Dateien
Beginnen Sie mit dem Erstellen einer neuen Datei namens qr_code_generator.py und öffnen Sie sie in Ihrem bevorzugten Code-Editor.
cd ~/project
touch qr_code_generator.py
Importiere die erforderlichen Bibliotheken
In der Datei qr_code_generator.py importieren Sie am Anfang Ihres Codes die folgenden Bibliotheken:
import qrcode
import tkinter as tk
from tkinter import messagebox, filedialog
from PIL import ImageTk, Image
import os
Installieren Sie die erforderlichen Bibliotheken mit dem folgenden Befehl:
pip3 install qrcode pillow
Definiere die QR-Code-Generierungsfunktion
Fügen Sie den folgenden Code hinzu, um eine Funktion namens generate_qr zu definieren, die einen Textparameter annimmt und ein QR-Code-Bild generiert:
def generate_qr(text):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4,
)
qr.add_data(text)
qr.make(fit=True)
img = qr.make_image(fill='black', back_color='white')
filename = 'qr_code.png'
img.save(filename)
return filename
Oben verwenden wir die qrcode-Bibliothek, um ein QR-Code-Bild zu generieren. Die generate_qr-Funktion nimmt einen Textparameter entgegen, der der Text oder die URL ist, die der QR-Code enthalten wird. Die Funktion erstellt dann ein QR-Code-Objekt mit der angegebenen Version, Fehlerkorrekturstufe, Boxgröße und Rahmen. Der Text wird dann zum QR-Code-Objekt hinzugefügt, und das QR-Code-Bild wird generiert und in eine Datei namens qr_code.png gespeichert. Schließlich gibt die Funktion den Dateinamen des generierten QR-Code-Bilds zurück.
Definiere die QR-Code-Speicherfunktion
Als nächstes fügen Sie den folgenden Code hinzu, um eine Funktion namens save_qr zu definieren, die dem Benutzer ermöglicht, den generierten QR-Code zu speichern:
def save_qr(filename):
filepath = filedialog.asksaveasfilename(defaultextension='.png', filetypes=[('PNG Images', '*.png')])
if filepath:
os.rename(filename, filepath)
messagebox.showinfo('QR Code Saved!')
Die Funktion nimmt einen Dateinamenparameter entgegen, der der Dateiname des generierten QR-Code-Bilds ist. Die Funktion öffnet dann einen Dateiauswahldialog, der dem Benutzer ermöglicht, einen Speicherort und einen Dateinamen auszuwählen, um das QR-Code-Bild zu speichern. Wenn der Benutzer einen Speicherort und einen Dateinamen auswählt, benennt die Funktion das generierte QR-Code-Bild in den ausgewählten Dateinamen um und zeigt eine Meldungsbox an, um dem Benutzer mitzuteilen, dass der QR-Code gespeichert wurde.
Erstelle das Hauptfenster und die Elemente
Jetzt fügen Sie den folgenden Code hinzu, um eine Funktion namens create_window zu definieren, die das Hauptfenster, die Labels, das Eingabefeld, die Leinwand und die Schaltflächen für die Schnittstelle des QR-Code-Generators erstellt:
def create_window():
window = tk.Tk()
window.title('QR Code Generator')
label = tk.Label(window, text='Enter the text/URL:')
label.pack()
ent = tk.Entry(window)
ent.pack()
canvas = tk.Canvas(window, width=200, height=200)
canvas.pack()
def generate_and_display():
text = ent.get()
filename = generate_qr(text)
photo = ImageTk.PhotoImage(Image.open(filename))
canvas.create_image(100, 100, image=photo)
button2 = tk.Button(window, text='Save QR Code', command=lambda: save_qr(filename))
button2.pack()
window.mainloop()
button = tk.Button(window, text='Generate QR Code', command=generate_and_display)
button.pack()
window.mainloop()
Wir verwenden die tkinter-Bibliothek, um das Hauptfenster, die Labels, das Eingabefeld, die Leinwand und die Schaltflächen zu erstellen. Die create_window-Funktion erstellt das Hauptfenster und fügt ein Label und ein Eingabefeld hinzu, um dem Benutzer den Text oder die URL einzugeben, die der QR-Code enthalten wird. Die Funktion erstellt auch eine Leinwand, die zum Anzeigen des generierten QR-Code-Bilds verwendet werden wird. Die Funktion definiert dann eine geschachtelte Funktion namens generate_and_display, die den Text aus dem Eingabefeld holt, ein QR-Code-Bild generiert und das QR-Code-Bild auf der Leinwand anzeigt. Die Funktion erstellt auch eine Schaltfläche, die dem Benutzer ermöglicht, das generierte QR-Code-Bild zu speichern. Schließlich erstellt die Funktion eine Schaltfläche, die die generate_and_display-Funktion aufruft, wenn sie angeklickt wird.
Führe die Hauptfunktion aus
Schließlich fügen Sie den folgenden Code hinzu, um die create_window-Funktion auszuführen, wenn die Datei ausgeführt wird:
if __name__ == '__main__':
create_window()
generate_qr('Hello World!')
Der Block if __name__ == '__main__' stellt sicher, dass die create_window-Funktion nur dann ausgeführt wird, wenn die Datei ausgeführt wird, und nicht, wenn sie als Modul importiert wird. Der Block ruft auch die generate_qr-Funktion auf, um ein QR-Code-Bild mit dem Text "Hello World!" zu generieren.
python qr_code_generator.py

Zusammenfassung
Sie haben erfolgreich einen QR-Code-Generator mit Python erstellt. Indem Sie an diesem schrittweisen Projekt teilgenommen haben, haben Sie gelernt, wie Sie eine Projekt-Datei erstellen, die erforderlichen Bibliotheken importieren, Funktionen für die Generierung und das Speichern von QR-Codes definieren, eine Benutzeroberfläche mit Tkinter erstellen und das Projekt ausführen, um QR-Codes zu generieren und anzuzeigen.



