【愚公系列】《Python网络爬虫从入门到精通》060-项目实战电商数据侦探(主窗体的Ul设计)

举报
愚公搬代码 发表于 2025/06/08 20:12:26 2025/06/08
【摘要】 🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"挖山不止"的毅力为开发者们搬开知识道路上的重重阻碍!💎【行业认证·权威头衔】✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区...

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟

📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!

👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"挖山不止"的毅力为开发者们搬开知识道路上的重重阻碍!

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析
每日更新硬核教程+实战案例,助你打通技术任督二脉!

💌【特别邀请】
正在构建技术人脉圈的你:
👍 如果这篇推文让你收获满满,点击"在看"传递技术火炬
💬 在评论区留下你最想学习的技术方向
⭐ 点击"收藏"建立你的私人知识库
🔔 关注公众号获取独家技术内参
✨与其仰望大神,不如成为大神!关注"愚公搬代码",让坚持的力量带你穿越技术迷雾,见证从量变到质变的奇迹!✨ |

🚀前言

在前几篇文章中,我们已经完成了 电商数据侦探 项目的需求分析和系统设计,奠定了坚实的技术基础。在本篇文章中,我们将进一步探讨如何设计项目的 主窗体UI,并将其与爬虫逻辑紧密结合,提升用户体验和操作便捷性。

在爬虫项目中,除了强大的数据抓取能力,用户界面的设计同样至关重要。一个清晰、简洁且易于操作的用户界面,可以让使用者更好地管理爬虫任务、查看爬取结果,并进行数据分析与可视化展示。因此,UI 设计不仅是开发过程中的一部分,也是提升项目实用性和用户体验的重要环节。

在本篇文章中,我们将重点学习如何为 电商数据侦探 项目设计一个主窗体的 UI,并结合以下几个核心内容:

  1. UI 设计原则:我们将讲解在设计爬虫管理系统时,如何遵循简洁、直观的设计原则,确保用户能够快速上手并高效操作。
  2. 主窗体布局:设计项目的主界面,包括任务管理、数据展示、爬虫配置等模块,确保各项功能清晰分区、功能完备。
  3. 图形化操作与交互:实现通过图形界面进行爬虫配置与操作,包括启动爬虫、查看抓取进度、显示爬取的数据等。
  4. 响应式设计:考虑到不同设备的适配问题,我们将介绍如何使 UI 在不同屏幕尺寸和分辨率下依然保持良好的显示效果。
  5. 与爬虫逻辑的结合:如何将 UI 界面与爬虫后台逻辑有效对接,实现爬虫的控制和数据展示,确保信息传递顺畅。

通过本篇文章的学习,你将能够为 电商数据侦探 项目设计出一个功能齐全且易于操作的主窗体界面,使整个爬虫系统更加用户友好。如果你有志于将爬虫项目推向更加完备的应用方向,UI设计将是你不可忽视的重要环节。

🚀一、主窗体的Ul设计

🔎1.主窗体布局设计

主窗体划分为 3个核心区域,通过Qt Designer实现布局(预览效果见图19.10):

  1. 饼图区域
    • 功能:展示热卖商品的分类比例
    • 控件:QHBoxLayout(水平布局容器)
  2. 关注商品列表区域
    • 功能:显示用户已关注的商品名称列表
    • 控件:
      • QFrame(容器)
      • QLabel(标题“关注商品列表”,字体大小16,居中显示)
      • QListView(列表视图,绑定关注商品数据)
  3. 热卖商品图文列表区域
    • 功能:展示热卖前10名的商品图文信息
    • 控件:QScrollArea(滚动区域,包含QGridLayout网格布局,用于动态加载商品卡片)

image.png

image.png

🔎2.主窗体显示效果

实现步骤:

  1. UI文件生成

    • 将Qt Designer设计的窗体保存为 window.ui,并转换为 window.py(生成PyQt5代码)。
  2. 窗体管理模块

    • 创建 show_window.py 文件,统一管理窗体显示逻辑。
  3. 代码实现

    # show_window.py
    from window import Ui_MainWindow  # 导入主窗体UI类(注意类名格式)
    from PyQt5 import QtWidgets, QtCore, QtGui
    from PyQt5.QtWidgets import QMainWindow, QApplication
    import sys
    
    # 主窗体初始化类(继承UI类和QMainWindow)
    class Main(QMainWindow, Ui_MainWindow):
        def __init__(self):
            super(Main, self).__init__()
            self.setupUi(self)  # 加载UI布局
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)  # 创建应用实例
        main = Main()                 # 实例化主窗体
        main.show()                   # 显示主窗体
        sys.exit(app.exec_())         # 启动事件循环
    

    代码说明:

    • 修正 Ui MainWindowUi_MainWindow(类名需与生成代码一致)。
    • 主窗体固定尺寸:1280×796(通过 minimumSizemaximumSize 限制)。
  4. 运行效果

    • 执行 show_window.py 后显示主窗体界面。

image.png

🔎3.关键控件与功能说明

image.png

🔎4.注意事项

  1. 控件命名规范:确保代码中引用的控件对象名称与UI文件一致(如 listViewlabel)。
  2. 菜单项绑定:需为每个 QAction 添加事件(如点击“退出”关闭应用)。
  3. 动态数据加载:QListViewQGridLayout 需通过模型(如 QStandardItemModel)填充数据。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。