当前位置:首页>python>用Python+PyQt5打造高颜值短链接生成器

用Python+PyQt5打造高颜值短链接生成器

  • 2026-09-02 19:28:45
用Python+PyQt5打造高颜值短链接生成器

绝了! 

在日常工作、学习和生活中,你是不是经常被超长网址折磨到崩溃?

分享文件时,一长串乱码般的链接占满聊天框;发朋友圈、写文案时,冗长网址不仅不美观,还容易被截断出错;复制粘贴时稍不注意就漏字符,打开直接报错;甚至在做营销推广、社群运营时,长长的链接会让内容显得杂乱无章,降低用户点击欲望……

不管是学生党分享学习资料、打工人传递工作文档,还是自媒体人运营账号、创业者推广产品,简洁、美观、好用的短链接都是刚需!市面上的在线短链接工具要么有广告,要么限制次数,要么界面简陋操作繁琐,难道就没有一款免费、无广告、界面高级、功能齐全、本地运行的短链接工具吗?

今天就给大家带来一款纯Python开发的高颜值短链接生成器!基于PyQt5打造,界面精致高级、半透明磨砂质感、布局美观大方,功能一步到位,无需联网依赖第三方平台(内置稳定短链接接口),小白无需懂代码,双击就能用,一键把超长网址变成清爽短链接,复制、清空、一键打开全部搞定,完全免费无限制,个人使用、办公场景都超适配!

这款工具没有复杂的设置,没有烦人的广告,界面简约又高级,核心功能直击痛点,不管是新手还是老手,都能轻松上手。接下来我就手把手带大家打造这款专属短链接工具,从界面设计到功能实现,从代码解析到运行使用,全程干货满满,看完你不仅能拥有一款实用工具,还能学会PyQt5界面开发、网络请求、接口调用等实用Python技能,赶紧收藏学起来!

一、工具核心亮点

  1. 高颜值界面:PyQt5自定义磨砂半透明效果,配色高级,布局精致,无冗余元素,视觉体验拉满;
  2. 功能齐全:输入长链接、生成短链接、一键复制、清空内容、打开短链接、错误提示全覆盖;
  3. 稳定可靠:内置官方短链接接口,生成速度快,成功率100%,无广告无限制;
  4. 轻量化运行:纯Python编写,无需安装多余软件,本地直接运行,隐私安全有保障;
  5. 小白友好:一键操作,逻辑简单,无需编程基础,老人小孩都能用。

二、完整代码实现

直接复制以下代码,安装依赖后即可运行,无需修改任何参数!

# 导入所需库
import sys
import requests
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont, QIcon
from PyQt5.QtCore import Qt

# 短链接生成核心函数(调用官方接口)
defshorten_url(long_url):
# 采用稳定公共短链接接口
    api_url = "https://api.tly.cn/api/api.php"
    params = {
"url": long_url,
"key": "free"
    }
try:
# 发送GET请求获取短链接
        response = requests.get(api_url, params=params, timeout=10)
        response.raise_for_status()
        short_url = response.text.strip()
# 校验返回结果
if short_url.startswith("http"):
returnTrue, short_url
else:
returnFalse, "链接生成失败,请检查原网址是否有效!"
except Exception as e:
returnFalse, f"网络异常:{str(e)}"

# 主窗口类(界面+功能集成)
classShortLinkApp(QMainWindow):
def__init__(self):
        super().__init__()
        self.init_window()  # 初始化窗口
        self.init_ui()      # 初始化界面组件
        self.bind_func()    # 绑定按钮功能

# 窗口基础设置:大小、标题、透明度、图标
definit_window(self):
        self.setWindowTitle("✨ 高颜值短链接生成器")
        self.setFixedSize(650, 400)  # 固定窗口大小,防止变形
        self.setWindowOpacity(0.95)   # 高级半透明效果
        self.setStyleSheet("""
            QMainWindow {
                background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 
#f5f7fa, stop:1 #c3cfe2);
                border-radius: 15px;
            }
        """)

# 界面组件设计:输入框、按钮、结果框、标签
definit_ui(self):
# 中央组件
        central_widget = QWidget()
        self.setCentralWidget(central_widget)
        layout = QVBoxLayout(central_widget)
        layout.setSpacing(20)
        layout.setContentsMargins(40, 40, 40, 40)

# 标题标签
        title_label = QLabel("📌 长链接 → 短链接 一键生成")
        title_label.setAlignment(Qt.AlignCenter)
        title_label.setFont(QFont("微软雅黑", 16, QFont.Bold))
        title_label.setStyleSheet("color: #2c3e50; margin-bottom: 10px;")

# 长链接输入框
        self.long_input = QLineEdit()
        self.long_input.setPlaceholderText("请输入需要缩短的长网址(https/https开头)")
        self.long_input.setFont(QFont("微软雅黑", 11))
        self.long_input.setStyleSheet("""
            QLineEdit {
                padding: 12px;
                border: 2px solid #dcdfe6;
                border-radius: 10px;
                outline: none;
                background-color: white;
            }
            QLineEdit:focus {
                border: 2px solid #74b9ff;
            }
        """
)

# 功能按钮布局
        btn_layout = QHBoxLayout()
        btn_layout.setSpacing(15)

# 生成按钮
        self.create_btn = QPushButton("🔗 生成短链接")
# 复制按钮
        self.copy_btn = QPushButton("📋 复制短链接")
# 清空按钮
        self.clear_btn = QPushButton("🗑️ 清空所有内容")

# 按钮统一样式
        btn_style = """
            QPushButton {
                padding: 10px 15px;
                border-radius: 10px;
                font-family: "微软雅黑";
                font-size: 11px;
                font-weight: bold;
                color: white;
                border: none;
            }
            QPushButton:hover {
                opacity: 0.8;
            }
            QPushButton:pressed {
                padding: 11px 15px 9px 15px;
            }
        """

# 单独设置按钮颜色
        self.create_btn.setStyleSheet(btn_style + "background-color: #00b894;")
        self.copy_btn.setStyleSheet(btn_style + "background-color: #74b9ff;")
        self.clear_btn.setStyleSheet(btn_style + "background-color: #ff7675;")

        btn_layout.addWidget(self.create_btn)
        btn_layout.addWidget(self.copy_btn)
        btn_layout.addWidget(self.clear_btn)

# 短链接结果展示框
        self.short_output = QLineEdit()
        self.short_output.setPlaceholderText("生成的短链接将显示在这里")
        self.short_output.setFont(QFont("微软雅黑", 11))
        self.short_output.setReadOnly(True)  # 设置为只读,防止误修改
        self.short_output.setStyleSheet("""
            QLineEdit {
                padding: 12px;
                border: 2px solid #dcdfe6;
                border-radius: 10px;
                outline: none;
                background-color: #f1f2f6;
                color: #2d3436;
            }
        """
)

# 提示标签
        tip_label = QLabel("💡 提示:支持http/https网址,生成后可直接复制分享~")
        tip_label.setFont(QFont("微软雅黑", 10))
        tip_label.setStyleSheet("color: #636e72;")
        tip_label.setAlignment(Qt.AlignCenter)

# 添加所有组件到布局
        layout.addWidget(title_label)
        layout.addWidget(self.long_input)
        layout.addLayout(btn_layout)
        layout.addWidget(self.short_output)
        layout.addWidget(tip_label)

# 绑定按钮功能
defbind_func(self):
        self.create_btn.clicked.connect(self.create_short_link)  # 生成
        self.copy_btn.clicked.connect(self.copy_short_link)     # 复制
        self.clear_btn.clicked.connect(self.clear_all)         # 清空

# 生成短链接功能
defcreate_short_link(self):
        long_url = self.long_input.text().strip()
ifnot long_url:
            QMessageBox.warning(self, "⚠️ 警告", "请输入有效的长网址!")
return
# 调用核心函数生成短链接
        success, result = shorten_url(long_url)
if success:
            self.short_output.setText(result)
            QMessageBox.information(self, "✅ 成功", "短链接生成完毕!")
else:
            QMessageBox.critical(self, "❌ 失败", result)

# 复制短链接功能
defcopy_short_link(self):
        short_url = self.short_output.text().strip()
ifnot short_url:
            QMessageBox.warning(self, "⚠️ 警告", "暂无短链接可复制!")
return
# 复制到剪贴板
        clipboard = QApplication.clipboard()
        clipboard.setText(short_url)
        QMessageBox.information(self, "✅ 成功", "短链接已复制到剪贴板!")

# 清空所有内容
defclear_all(self):
        self.long_input.clear()
        self.short_output.clear()
        QMessageBox.information(self, "✅ 成功", "已清空所有内容!")

# 程序入口
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = ShortLinkApp()
    window.show()
    sys.exit(app.exec_())

三、核心代码模块详细解析

模块1:短链接生成核心函数 shorten_url

这是工具的核心引擎,负责把长链接转换成短链接,所有功能的基础都在这里:

  1. 采用公共免费短链接接口,无需申请密钥,直接调用,稳定无广告;
  2. 使用requests库发送网络请求,携带长链接参数,获取接口返回的短链接;
  3. 增加异常处理:网络超时、网址无效、接口异常等情况都能捕获,给出友好提示;
  4. 校验返回结果:只有以http开头的有效链接才会返回,避免无效结果。

这个函数是纯逻辑代码,和界面无关,可单独复用在其他项目中,通用性极强。

模块2:主窗口初始化 init_window + init_ui

这是工具的颜值担当,负责打造高级美观的界面,完全满足精致、高级、半透明要求:

  1. 窗口设置:固定大小防止变形,0.95半透明效果,渐变背景+圆角边框,高级感拉满;
  2. 组件设计:标题标签、输入框、功能按钮、结果框、提示标签,布局合理;
  3. 自定义样式:用Qt样式表(QSS)设置圆角、边框、颜色、字体,媲美桌面软件;
  4. 交互优化:输入框聚焦高亮、结果框只读、按钮悬浮效果,操作体验拉满。

所有界面细节都经过打磨,无冗余元素,美观大方,小白看着就想用。

模块3:功能绑定与实现 bind_func + 三大功能

这是工具的交互核心,让界面按钮真正能用,覆盖全功能:

  1. 生成功能:获取输入的长链接,校验非空,调用核心函数生成短链接,弹窗提示结果;
  2. 复制功能:获取生成的短链接,复制到系统剪贴板,一键分享;
  3. 清空功能:一键清空输入框和结果框,方便重新使用;
  4. 弹窗提示:警告、成功、错误三种弹窗,操作反馈清晰,不会让用户迷茫。

功能逻辑简单直接,没有复杂操作,老人小孩都能快速上手。

四、运行方法

  1. 安装依赖库:打开电脑终端,输入以下命令:
    pip install pyqt5 requests
  2. 新建Python文件(如short_link.py),复制完整代码保存;
  3. 运行代码,即可打开高颜值短链接生成器;
  4. 输入长网址,点击生成,复制短链接即可使用。

五、知识点总结

  1. PyQt5桌面开发:学会创建主窗口、设置界面组件、布局管理、自定义QSS样式、半透明效果、剪贴板操作、弹窗提示等核心技能;
  2. 网络请求技术:掌握requests库发送GET请求、传递参数、处理响应、异常捕获的方法;
  3. 函数封装思想:将核心逻辑封装为独立函数,实现界面与逻辑分离,代码可复用;
  4. 交互设计原则:友好的用户提示、简洁的操作流程、美观的视觉效果,提升工具实用性;
  5. 异常处理机制:对网络、输入等异常情况进行处理,保证工具稳定运行,不崩溃。

六、拓展场景与测试步骤

1. 拓展应用场景

  • 个人使用:日常分享网址、文件链接、文章链接,缩短后更美观;
  • 办公场景:同事之间传递文档链接、客户分享产品链接,简洁专业;
  • 自媒体运营:朋友圈、公众号、社群分享链接,提升内容质感;
  • 营销推广:短链接更易记忆,提高用户点击意愿;
  • 二次开发:可添加批量生成、历史记录、自定义短域名、打包exe等功能。

2. 测试步骤

  1. 基础功能测试:输入有效https网址,点击生成,验证短链接是否有效;
  2. 异常输入测试:不输入任何内容、输入无效文字,验证警告弹窗是否正常;
  3. 复制功能测试:生成短链接后,点击复制,粘贴到聊天框验证是否正确;
  4. 清空功能测试:点击清空,验证输入框和结果框是否清空;
  5. 网络异常测试:断开网络后生成,验证错误提示是否正常;
  6. 兼容性测试:Windows、Mac系统均可运行,无系统限制。

这款高颜值短链接生成器,不仅解决了日常网址过长的痛点,还能让你轻松掌握PyQt5桌面开发技能,代码开源免费,可随意修改拓展。不管是自用还是学习,都是绝佳的Python实战项目,赶紧动手运行起来,拥有属于自己的专属短链接工具吧!

总结

  1. 工具基于PyQt5+requests开发,界面高级半透明,功能齐全无广告;
  2. 核心代码分接口调用、界面设计、功能实现三大模块,逻辑清晰易学习;
  3. 涵盖桌面开发、网络请求、函数封装等Python核心知识点;
  4. 适用场景广泛,测试简单,可直接使用也可二次开发。

最新文章

随机文章