![cover](/upload/talk-python-gui.png)
Python 用 GUI 实现一个生成二维码、条形码的服务(开箱即用)
AI-摘要
CokeSR GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
首先确保你安装了必要的库:
pip install qrcode Pillow
代码如下:
import tkinter as tk
from tkinter import filedialog, messagebox
import qrcode
from barcode import EAN13
from barcode.writer import ImageWriter
from PIL import ImageTk, Image
class BarcodeGeneratorApp:
def __init__(self, master):
self.master = master
master.title("二维码 & 条形码生成器")
# 初始化图像变量
self.qr_image = None
self.bar_image = None
# 二维码部分
qr_frame = tk.Frame(master, padx=20, pady=20)
qr_frame.pack(side=tk.LEFT)
self.qr_label = tk.Label(qr_frame)
self.qr_label.pack()
self.qr_entry = tk.Entry(qr_frame)
self.qr_entry.pack(pady=(0, 10))
qr_gen_button = tk.Button(qr_frame, text="生成二维码", command=self.generate_qr_code)
qr_gen_button.pack()
qr_save_button = tk.Button(qr_frame, text="保存二维码", command=self.save_qr)
qr_save_button.pack()
# 条形码部分
bar_frame = tk.Frame(master, padx=20, pady=20)
bar_frame.pack(side=tk.RIGHT)
self.bar_label = tk.Label(bar_frame)
self.bar_label.pack()
self.bar_entry = tk.Entry(bar_frame)
self.bar_entry.pack(pady=(0, 10))
bar_gen_button = tk.Button(bar_frame, text="生成条形码", command=self.generate_bar_code)
bar_gen_button.pack()
bar_save_button = tk.Button(bar_frame, text="保存条形码", command=self.save_bar)
bar_save_button.pack()
def generate_qr_code(self):
data = self.qr_entry.get()
if data:
img = qrcode.make(data)
img.save("qr_code.png")
self.qr_image = Image.open("qr_code.png")
self.qr_image.thumbnail((200, 200))
qr_photo = ImageTk.PhotoImage(self.qr_image)
self.qr_label.config(image=qr_photo)
self.qr_label.image = qr_photo
else:
messagebox.showwarning("警告", "请输入内容以生成二维码!")
def generate_bar_code(self):
data = self.bar_entry.get()
if data.isdigit() and (len(data) == 12 or len(data) == 13):
ean = EAN13(data, writer=ImageWriter())
filename = ean.save("bar_code.png") # 确保保存为png文件
self.bar_image = Image.open(filename)
self.bar_image.thumbnail((200, 100))
bar_photo = ImageTk.PhotoImage(self.bar_image)
self.bar_label.config(image=bar_photo)
self.bar_label.image = bar_photo
else:
messagebox.showwarning("警告", "请输入有效的12或13位数字以生成条形码!")
def save_qr(self):
if self.qr_image:
file_path = filedialog.asksaveasfilename(defaultextension=".png")
if file_path:
self.qr_image.save(file_path)
messagebox.showinfo("成功", "二维码已保存!")
def save_bar(self):
if self.bar_image:
file_path = filedialog.asksaveasfilename(defaultextension=".png")
if file_path:
self.bar_image.save(file_path)
messagebox.showinfo("成功", "条形码已保存!")
if __name__ == "__main__":
root = tk.Tk()
app = BarcodeGeneratorApp(root)
root.mainloop()
这段代码创建了一个简单的GUI应用程序,用户可以在输入框中输入想要生成二维码、条形码的数据,点击“生成二维码、条形码”按钮后,程序会弹出保存对话框让用户选择保存位置,随后将生成的二维码、条形码图片保存到指定位置。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Coke(cokeserver@qq.com)
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果