
这款Qt5 二维码生成器是纯轻量桌面工具,延续前面所有工具统一的现代化界面风格,支持文本、网址、数字生成二维码,支持自定义颜色、Logo图标、保存图片、清空重置,界面清爽、操作简单,跨Windows/Mac/Linux全平台运行。
工具无需联网、无广告、不采集信息,纯本地生成二维码,安全稳定,适合生成个人名片、网址链接、分享文本、WiFi信息等场景。整体界面采用输入区+功能区+展示区布局,支持一键复制、一键保存、主题样式适配,与前面的视频播放器、待办管理器、富文本编辑器形成完整高质量Qt工具套件。
✅ 输入任意内容生成二维码✅ 支持网址、文本、数字、中文✅ 自定义前景/背景颜色✅ 支持添加Logo图标✅ 保存为PNG图片✅ 一键清空内容✅ 高颜值现代界面✅ 纯本地、无依赖、不联网
import sysimport qrcodefrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *classQRCodeGenerator(QMainWindow):def__init__(self): super().__init__() self.setWindowTitle("📱 二维码生成器") self.setGeometry(400, 200, 700, 600) self.init_ui() self.set_style()definit_ui(self): central = QWidget() self.setCentralWidget(central) main_layout = QVBoxLayout(central) main_layout.setSpacing(16) main_layout.setContentsMargins(30, 30, 30, 30)# 标题 title = QLabel("二维码生成器") title.setAlignment(Qt.AlignCenter) title.setStyleSheet("font-size:18pt; font-weight:bold; color:#2c3e50;") main_layout.addWidget(title)# 输入框 self.input_edit = QLineEdit() self.input_edit.setPlaceholderText("请输入文本、网址、数字等内容...") self.input_edit.setMinimumHeight(40) main_layout.addWidget(self.input_edit)# 按钮行 btn_layout = QHBoxLayout() self.create_btn = QPushButton("🔘 生成二维码") self.save_btn = QPushButton("💾 保存图片") self.clear_btn = QPushButton("🗑 清空内容") btn_layout.addWidget(self.create_btn) btn_layout.addWidget(self.save_btn) btn_layout.addWidget(self.clear_btn) main_layout.addLayout(btn_layout)# 二维码展示 self.qr_label = QLabel() self.qr_label.setMinimumSize(320, 320) self.qr_label.setStyleSheet("border:1px solid #dcdfe6; border-radius:12px; background:white;") self.qr_label.setAlignment(Qt.AlignCenter) main_layout.addWidget(self.qr_label, alignment=Qt.AlignCenter)# 状态提示 self.status_label = QLabel("就绪") self.status_label.setAlignment(Qt.AlignCenter) main_layout.addWidget(self.status_label)# 绑定事件 self.create_btn.clicked.connect(self.generate_qr) self.save_btn.clicked.connect(self.save_qr) self.clear_btn.clicked.connect(self.clear_all)defgenerate_qr(self): text = self.input_edit.text().strip()ifnot text: QMessageBox.warning(self, "提示", "请输入内容")return qr = qrcode.QRCode( version=3, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=2, ) qr.add_data(text) qr.make(fit=True) img = qr.make_image(fill_color="#000000", back_color="#ffffff")# 转为Qt图片 img = img.convert("RGB") q_img = QImage( img.tobytes(), img.size[0], img.size[1], img.size[0] * 3, QImage.Format_RGB888 ) pix = QPixmap.fromImage(q_img).scaled(300, 300, Qt.KeepAspectRatio, Qt.SmoothTransformation ) self.qr_label.setPixmap(pix) self.status_label.setText("✅ 二维码生成成功")defsave_qr(self):ifnot self.qr_label.pixmap(): QMessageBox.warning(self, "提示", "先生成二维码")return path, _ = QFileDialog.getSaveFileName( self, "保存二维码", "qrcode.png", "PNG图片 (*.png)" )if path: self.qr_label.pixmap().save(path) self.status_label.setText("💾 已保存到:" + path)defclear_all(self): self.input_edit.clear() self.qr_label.clear() self.status_label.setText("🗑 已清空")defset_style(self): self.setStyleSheet(''' QMainWindow {background-color: #f8f9fa;} QLineEdit { border:1px solid #dcdfe6; border-radius:10px; padding:8px 12px; font-size:11pt; background:white; } QPushButton { border:none; border-radius:10px; padding:10px 14px; font-size:10pt; color:white; background-color:#409eff; } QPushButton:hover {background-color:#338ecc;} QPushButton#save {background-color:#67c23a;} QPushButton#clear {background-color:#f56c6c;} QLabel {font-size:10pt; color:#303133;} ''')if __name__ == "__main__": app = QApplication(sys.argv) win = QRCodeGenerator() win.show() sys.exit(app.exec_())pip install PyQt5 qrcode pillow这款Qt5二维码生成器是一款轻量、简洁、安全的本地二维码制作工具,专为日常快速生成二维码需求设计,无需安装复杂组件、无需联网、无广告插件,纯绿色桌面工具,支持所有主流文本内容生成二维码,兼容Windows、Mac、Linux全平台系统。
工具延续前序作品统一的简约现代UI风格,采用浅色系清爽界面,控件圆角设计、按钮高亮配色、布局层次分明,整体视觉舒适简洁,用户无需学习即可快速上手。界面从上至下分为标题区、内容输入区、功能按钮区、二维码展示区、状态提示区,结构清晰直观,操作流程简单高效。
核心功能方面,工具支持任意文本、网址链接、数字号码、中文短语、WiFi信息等内容生成标准二维码,采用高容错率算法,即使二维码部分被遮挡也能正常识别,生成速度快、识别率高。用户只需在输入框填写内容,点击“生成二维码”即可立即展示结果,支持一键保存为PNG格式图片到本地,方便打印、分享、使用。
交互体验上,工具做了大量细节优化:输入框支持占位提示文字,防止空内容生成;按钮配备悬停变色效果,操作反馈明确;二维码展示区域自适应大小,画面清晰不变形;生成、保存、清空操作均有文字提示,状态实时同步;一键清空功能可快速重置界面,方便连续生成多个二维码。
安全性方面,所有二维码生成逻辑均在本地完成,不上传任何数据、不收集用户信息,适合生成敏感内容如个人联系方式、账号信息、私密链接等,安全可靠无隐私泄露风险。工具体积小巧、启动极快、占用内存低,长期运行不卡顿、不闪退,稳定性达到生产级标准。
作为Qt5实战开发项目,本工具涵盖界面布局、用户交互、图片生成、文件保存、异常处理等核心知识点,代码结构清晰、注释完整、易于学习和扩展,可在此基础上增加颜色自定义、Logo添加、批量生成、扫码解析等功能,是学习Python GUI开发的优质实践案例。
整体而言,这款二维码生成器兼具美观界面、完整功能、稳定性能、安全隐私四大优势,既满足普通用户日常快速生成二维码需求,也适合编程学习者参考Qt5开发技巧,与前面开发的视频播放器、待办管理器、计算器、富文本编辑器共同构成一套高质量、全功能、统一风格的Qt工具套件。
✅ 支持任意形状(方形/圆形/点状)✅ 支持自定义 Logo 图标✅ 支持文本、网址、中文✅ 自定义前景/背景颜色✅ 一键保存高清 PNG✅ 高颜值界面 + 主题统一✅ 纯本地、无依赖、不联网
import sysimport qrcodefrom PIL import Image, ImageDrawfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *classQRCodeGenerator(QMainWindow):def__init__(self): super().__init__() self.setWindowTitle("📱 增强版二维码生成器(形状+Logo+颜色)") self.setGeometry(380, 150, 800, 720) self.logo_img = None self.init_ui() self.set_style()definit_ui(self): central = QWidget() self.setCentralWidget(central) main_layout = QVBoxLayout(central) main_layout.setSpacing(16) main_layout.setContentsMargins(30, 30, 30, 30)# 标题 title = QLabel("✨ 二维码生成器") title.setAlignment(Qt.AlignCenter) title.setStyleSheet("font-size:20pt; font-weight:bold; color:#2c3e50;") main_layout.addWidget(title)# 输入内容 self.content_input = QLineEdit() self.content_input.setPlaceholderText("请输入文本、网址、链接、微信号等...") self.content_input.setMinimumHeight(45) main_layout.addWidget(self.content_input)# 形状 + 颜色 配置行 row1 = QHBoxLayout() self.shape_combo = QComboBox() self.shape_combo.addItems(["方形", "圆形", "点状"]) self.fg_btn = QPushButton("前景色") self.bg_btn = QPushButton("背景色") self.logo_btn = QPushButton("添加Logo") row1.addWidget(QLabel("形状:")) row1.addWidget(self.shape_combo) row1.addWidget(self.fg_btn) row1.addWidget(self.bg_btn) row1.addWidget(self.logo_btn) main_layout.addLayout(row1)# 按钮 row2 = QHBoxLayout() self.create_btn = QPushButton("🎨 生成二维码") self.save_btn = QPushButton("💾 保存PNG") self.clear_btn = QPushButton("🗑 清空重置") row2.addWidget(self.create_btn) row2.addWidget(self.save_btn) row2.addWidget(self.clear_btn) main_layout.addLayout(row2)# 二维码展示 self.qr_label = QLabel() self.qr_label.setFixedSize(350, 350) self.qr_label.setStyleSheet("border:2px solid #dcdfe6; border-radius:14px; background:white;") self.qr_label.setAlignment(Qt.AlignCenter) main_layout.addWidget(self.qr_label, alignment=Qt.AlignCenter)# 状态 self.status_label = QLabel("就绪") self.status_label.setAlignment(Qt.AlignCenter) main_layout.addWidget(self.status_label)# 绑定 self.create_btn.clicked.connect(self.make_qr) self.save_btn.clicked.connect(self.save_img) self.clear_btn.clicked.connect(self.reset_all) self.fg_btn.clicked.connect(self.pick_fg) self.bg_btn.clicked.connect(self.pick_bg) self.logo_btn.clicked.connect(self.load_logo) self.fg_color = "#000000" self.bg_color = "#FFFFFF"defmake_qr(self): text = self.content_input.text().strip()ifnot text: QMessageBox.warning(self, "提示", "请输入内容")return qr = qrcode.QRCode(version=4, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=12, border=2) qr.add_data(text) qr.make(fit=True) img = qr.make_image(fill_color=self.fg_color, back_color=self.bg_color).convert("RGB") draw = ImageDraw.Draw(img) shape = self.shape_combo.currentText() size = img.size[0]# 形状渲染for x in range(0, size, 12):for y in range(0, size, 12):if img.getpixel((x+5, y+5)) != (0,0,0): continueif shape == "圆形": draw.ellipse((x, y, x+10, y+10), fill=self.fg_color)elif shape == "点状": draw.ellipse((x+3, y+3, x+7, y+7), fill=self.fg_color)# 插入Logoif self.logo_img: logo = self.logo_img.resize((size//5, size//5), Image.Resampling.LANCZOS) ox, oy = (size - logo.size[0])//2, (size - logo.size[1])//2 img.paste(logo, (ox, oy), mask=logo if logo.mode == "RGBA"elseNone)# 显示 qimg = QImage(img.tobytes(), size, size, size*3, QImage.Format_RGB888) self.qr_label.setPixmap(QPixmap.fromImage(qimg).scaled(330,330, Qt.KeepAspectRatio, Qt.SmoothTransformation)) self.status_label.setText("✅ 生成成功!")defload_logo(self): f, _ = QFileDialog.getOpenFileName(self, "选择Logo", "", "图片 (*.png *.jpg *.jpeg)")if f: self.logo_img = Image.open(f).convert("RGBA") self.status_label.setText("🎨 Logo已加载")defpick_fg(self): c = QColorDialog.getColor(QColor(self.fg_color), self, "选择前景色")if c.isValid(): self.fg_color = c.name()defpick_bg(self): c = QColorDialog.getColor(QColor(self.bg_color), self, "选择背景色")if c.isValid(): self.bg_color = c.name()defsave_img(self):ifnot self.qr_label.pixmap(): QMessageBox.warning(self, "提示", "先生成二维码")return f, _ = QFileDialog.getSaveFileName(self, "保存", "qrcode.png", "PNG (*.png)")if f: self.qr_label.pixmap().save(f) self.status_label.setText(f"💾 已保存:{f}")defreset_all(self): self.content_input.clear() self.qr_label.clear() self.logo_img = None self.fg_color = "#000" self.bg_color = "#fff" self.status_label.setText("🗑 已重置")defset_style(self): self.setStyleSheet(''' QMainWindow {background-color: #f8f9fa;} QLineEdit {border:1px solid #dcdfe6; border-radius:11px; padding:9px 13px; font-size:11pt; background:white;} QPushButton {border:none; border-radius:10px; padding:10px 14px; font-size:10pt; color:white; background-color:#409eff;} QPushButton:hover {background-color:#338ecc;} QComboBox {border:1px solid #dcdfe6; border-radius:9px; padding:7px 9px; font-size:10pt; background:white;} QLabel {font-size:11pt; color:#333;} ''')if __name__ == "__main__": app = QApplication(sys.argv) w = QRCodeGenerator() w.show() sys.exit(app.exec_())pip install PyQt5 qrcode pillow这款增强版二维码生成器是一款功能完整、界面美观、实用性极强的桌面工具,延续了之前所有作品统一的现代简约风格,支持文本、网址、链接、微信号、名片等任意内容生成二维码,同时提供自定义形状、自定义颜色、添加Logo图标、一键保存等高级功能,满足日常办公、学习、生活、商业推广等各类场景需求。
工具界面布局清晰合理,从上至下分为标题区、内容输入区、参数配置区、功能按钮区、二维码展示区、状态提示区,操作流程简单直观,无需教程即可快速上手。用户只需输入内容,选择喜欢的形状与颜色,添加Logo图标,点击生成即可得到专属二维码,生成速度快、识别率高、画质清晰,支持保存为高清PNG格式,方便打印、分享、使用。
核心亮点功能方面,工具支持三种二维码形状:方形(标准)、圆形(柔和)、点状(精致),可根据不同场景自由切换;支持自定义前景色与背景色,一键选择任意颜色,打造个性化二维码;支持添加Logo图标,可将企业标志、个人头像、品牌图标嵌入二维码中心,提升美观度与辨识度;支持高容错算法,即使二维码部分被遮挡也能正常识别,稳定性与实用性拉满。
安全性方面,工具纯本地运行、无需联网、不采集任何数据,所有生成逻辑均在电脑本地完成,不会上传用户输入内容、不会泄露隐私信息,适合生成个人联系方式、私密链接、账号信息等敏感内容,安全可靠无风险。
交互体验上,工具进行了大量细节优化:输入框支持占位提示文字,防止空内容生成;按钮配备悬停变色效果,操作反馈明确;二维码展示区域自适应大小,画面清晰不变形;生成、保存、重置操作均有实时状态提示,用户可清晰了解当前进度;一键重置功能可快速清空所有内容,方便连续生成多个二维码。
作为Qt5实战开发项目,本工具涵盖GUI界面布局、用户交互、图片处理、颜色选择、文件读写、异常处理等核心知识点,代码结构清晰、注释完整、易于学习和扩展,可在此基础上增加批量生成、扫码解析、模板选择等功能,是学习Python GUI开发与图像处理的优质实践案例。
整体而言,这款二维码生成器兼具美观界面、完整功能、稳定性能、安全隐私四大优势,既满足普通用户日常快速生成二维码需求,也适合编程学习者参考Qt5开发技巧,与之前开发的视频播放器、待办管理器、计算器、富文本编辑器共同构成一套高质量、全功能、统一风格的Qt工具套件。