使用 PyQt5 开发二维码生成器桌面应用
简介
本文介绍如何使用 PyQt5 框架构建一个支持自定义链接和边距的二维码生成器桌面应用。通过结合 qrcode 库与 Qt Widgets,实现了图形界面布局、输入验证及二维码图像渲染功能。文章涵盖了从环境配置、UI 设计到核心逻辑实现的完整流程,并简要说明了如何将程序打包为独立的可执行文件,便于分发和使用。
环境准备
在开始之前,请确保已安装 Python 3.x 环境,并通过 pip 安装必要的依赖包:
pip install PyQt5 qrcode[pil] pillow
- PyQt5: 用于构建跨平台的图形用户界面。
- qrcode: 用于生成二维码数据。
- pillow: 用于处理图片格式。
界面布局设计
GUI 桌面应用的核心在于界面的布局与组件交互。我们使用 QGridLayout 进行网格布局,包含链接输入框、边距调整滑块、图片路径显示以及生成按钮。
以下是主窗口初始化部分的代码实现:
# -*- coding: utf-8 -*-
import os
import sys
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
QHBoxLayout, QLabel, QLineEdit, QPushButton,
QSpinBox, QMessageBox)
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt
class QRCodeGenerator(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
# 设置窗口基本信息
self.setWindowTitle('二维码生成器')
self.setGeometry(100, 100, 600, 400)
# 创建中心部件
central_widget = QWidget()
self.setCentralWidget(central_widget)
layout = QVBoxLayout(central_widget)
link_label = QLabel()
.link_text = QLineEdit()
.link_text.setPlaceholderText()
link_layout = QHBoxLayout()
link_layout.addWidget(link_label)
link_layout.addWidget(.link_text)
layout.addLayout(link_layout)
margin_label = QLabel()
.margin_spinbox = QSpinBox()
.margin_spinbox.setRange(, )
.margin_spinbox.setValue()
margin_layout = QHBoxLayout()
margin_layout.addWidget(margin_label)
margin_layout.addWidget(.margin_spinbox)
layout.addLayout(margin_layout)
.image_path_label = QLabel()
.save_button = QPushButton()
.save_button.clicked.connect(.generate_qr_code)
button_layout = QHBoxLayout()
button_layout.addStretch()
button_layout.addWidget(.save_button)
layout.addLayout(button_layout)
.statusBar().showMessage()


