請你幫我用python製作一個二維碼生成器,需要有GUI窗口
时间: 2024-02-27 10:54:00 浏览: 23
好的,我可以使用Python中的qrcode和tkinter模块来实现这个二维码生成器。以下是代码实现:
```python
import qrcode
import tkinter as tk
from tkinter import messagebox, filedialog
class QrCodeGenerator:
def __init__(self, master):
self.master = master
master.title('QR Code Generator')
# Create input label and entry
self.input_label = tk.Label(master, text='Enter text or link:')
self.input_label.pack()
self.input_entry = tk.Entry(master, width=50)
self.input_entry.pack()
# Create button to generate QR code
self.generate_button = tk.Button(master, text='Generate QR Code', command=self.generate_qr_code)
self.generate_button.pack()
# Create button to save QR code
self.save_button = tk.Button(master, text='Save QR Code', command=self.save_qr_code, state=tk.DISABLED)
self.save_button.pack()
def generate_qr_code(self):
# Get input from user
input_text = self.input_entry.get()
# Check if input is empty
if not input_text:
messagebox.showerror('Error', 'Please enter text or link')
return
# Generate QR code
qr = qrcode.QRCode(version=1, box_size=10, border=5)
qr.add_data(input_text)
qr.make(fit=True)
qr_image = qr.make_image(fill_color='black', back_color='white')
# Display QR code
self.qr_code_display = tk.Label(self.master, image=qr_image)
self.qr_code_display.pack()
# Enable save button
self.save_button.config(state=tk.NORMAL)
def save_qr_code(self):
# Get file path from user
file_path = filedialog.asksaveasfilename(defaultextension='.png')
# Check if file path is empty
if not file_path:
return
# Get QR code image and save to file
qr_code_image = self.qr_code_display['image']
qr_code_image.save(file_path)
# Show success message
messagebox.showinfo('Success', 'QR code saved successfully')
# Create GUI window
root = tk.Tk()
qr_code_generator = QrCodeGenerator(root)
root.mainloop()
```
当你运行这个代码时,会弹出一个窗口,让你输入要转换为二维码的文本或链接。单击“生成QR代码”按钮后,它将在窗口中显示QR代码。如果您想保存QR代码,单击“保存QR代码”按钮并选择要保存的文件路径。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)