From 57420fd030f72edfc73ae4a370cd18c92bf0fc16 Mon Sep 17 00:00:00 2001 From: sairate Date: Sat, 24 May 2025 17:06:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=20QRCodeGenerator=20?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增主程序文件 main.py 实现二维码生成功能 - 添加安装环境脚本 安装环境.py 以安装所需第三方库 - 创建 .idea 目录及相关配置文件,设置项目环境和忽略项 --- .idea/.gitignore | 3 ++ .idea/QRCodeGenerator.iml | 10 +++++ .idea/inspectionProfiles/Project_Default.xml | 14 +++++++ .../inspectionProfiles/profiles_settings.xml | 6 +++ .idea/material_theme_project_new.xml | 10 +++++ .idea/misc.xml | 7 ++++ .idea/modules.xml | 8 ++++ main.py | 38 ++++++++++++++++++ qrcode_bg.png | Bin 0 -> 3947 bytes 安装环境.py | 7 ++++ 10 files changed, 103 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/QRCodeGenerator.iml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/material_theme_project_new.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 main.py create mode 100644 qrcode_bg.png create mode 100644 安装环境.py diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/QRCodeGenerator.iml b/.idea/QRCodeGenerator.iml new file mode 100644 index 0000000..d9f5388 --- /dev/null +++ b/.idea/QRCodeGenerator.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..25bde2c --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml new file mode 100644 index 0000000..620852a --- /dev/null +++ b/.idea/material_theme_project_new.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..40cb4cc --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..fce20b3 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..7e314e5 --- /dev/null +++ b/main.py @@ -0,0 +1,38 @@ +# 编程前,运行【安装第三方库.py】文件,安装本课用到的第三方库 + +import tkinter +from PIL import Image, ImageTk +from tkinter import filedialog +import os +from amzqr import amzqr +w = tkinter.Tk() +w.geometry("400x400") +w.resizable(0,0) + +bg_image = Image.open("qrcode_bg.png") +bg_image = ImageTk.PhotoImage(bg_image) +bg_label = tkinter.Label(w, image=bg_image) +bg_label.pack() + +t1 = tkinter.Text(w, font=("微软雅黑", 12),width=30,height=5) +t1.place(x=80, y=100) +t2 = tkinter.Text(w, font=("微软雅黑", 12),width=23,height=1) +t2.place(x=80, y=250) +def get_pic(): + pic_path = filedialog.askopenfilename() + t2.delete("1.0", "end") + t2.insert("1.0", pic_path) + +btn1 = tkinter.Button(w, text="浏览", font=("微软雅黑", 12), command=get_pic) +btn1.place(x=312, y=250, height=25) +def qr(): + words = t1.get("1.0","end") + words = "".join(words.split('\n')) + picture = t2.get("1.0", "end")[:-1] + version, level, qr_name = amzqr.run(words=words, picture=picture, colorized=True) + os.system(qr_name) + +btn2 = tkinter.Button(w, text="生成二维码", font=("微软雅黑", 15), command=qr) +btn2.place(x=80, y=300, width=250) +w.mainloop() + diff --git a/qrcode_bg.png b/qrcode_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..0acc19fd1b04cbffe0602a302c55b1c1d4bfde78 GIT binary patch literal 3947 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