QR Code Generator
QR Code Generator
GENERATOR
Group members:
Core Functionalities
To install the required libraries, write the following in the Python Terminal:
Source Code:
import qrcode
import tkinter as tk
class QRCodeApp:
# main window
self.root = root
self.root.configure(bg='#21252b')
# icon
self.root.iconphoto(False, tk.PhotoImage(file='icon.png'))
# label
self.data_entry.configure(bg='#333845', relief='flat')
self.qr_label = tk.Label(root)
self.qr_label.pack(pady=20)
self.qr_label.configure(bg='#21252b')
self.qr_img = None
self.last_data = None
self.confirm_save_btn = None
self.filename_entry = None
self.filename_label = None
self.root.mainloop()
def generate(self):
data = self.data_entry.get()
if not data:
return
if data == self.last_data:
self.save_btn.config(state=tk.NORMAL)
return
qr = qrcode.make(data)
qr = qr.resize((200, 200))
self.qr_img = qr
qr_tk = ImageTk.PhotoImage(qr)
self.qr_label.config(image=qr_tk)
self.qr_label.image = qr_tk
self.last_data = data
self.save_btn.config(state=tk.NORMAL)
# Cleanup any previous filename input widgets ONLY if the data is new
self.cleanup_save_widgets()
def save_qr(self):
if not self.qr_img:
return
if self.filename_entry:
return
self.filename_entry.configure(bg='#333845', relief='flat')
self.save_btn.config(state=tk.DISABLED)
def confirm_save(self):
filename = self.filename_entry.get().strip()
if not filename:
return
try:
self.qr_img.save(f'{filename}.png')
self.filename_entry.destroy()
self.confirm_save_btn.destroy()
self.filename_entry = None
self.confirm_save_btn = None
# checks for errors
except Exception as e:
def cleanup_save_widgets(self):
if self.filename_entry:
self.filename_entry.destroy()
if self.confirm_save_btn:
self.confirm_save_btn.destroy()
if self.filename_label:
self.filename_label.destroy()
self.filename_entry = None
self.confirm_save_btn = None
self.filename_label = None
if _name_ == '_main_':
main_window = tk.Tk()
app = QRCodeApp(main_window)