深入解析UML图:版本演变、静态图与动态图详解
目录
- 前言
- 1 UML的版本演变
- 1.1 UML 1.x阶段:统一的开始
- 1.2 UML 2.x阶段:功能的扩展与深化
- 2 UML图的分类概述
- 3 UML静态图详解
- 3.1 类图(Class Diagram)
- 3.2 对象图(Object Diagram)
- 3.3 组件图(Component Diagram)
- 3.4 部署图(Deployment Diagram)
- 3.5 包图(Package Diagram)
- 3.6 复合结构图(Composite Structure Diagram)
- 4 UML动态图详解
- 4.1 用例图(Use Case Diagram)
- 4.2 顺序图(Sequence Diagram)
- 4.3 活动图(Activity Diagram)
- 4.4 状态图(State Machine Diagram)
- 4.5 通信图(Communication Diagram)
- 4.6 定时图(Timing Diagram)
- 5 静态图与动态图的协同作用
- 结语
前言
统一建模语言(UML, Unified Modeling Language)是面向对象软件开发中不可或缺的建模工具,它提供了一套标准化的图形表示方式,用于描绘软件系统的结构与行为。随着软件工程的发展,UML自身也经历了多个版本的演进,每一次更新都体现了对建模需求的更深刻理解与适应。而UML图本身,又可以根据建模角度的不同划分为静态图与动态图,各自承担不同的建模职责,协同描述系统的完整蓝图。
本文将从UML的版本变化谈起,详细阐述UML图的分类及其作用,并对静态图与动态图进行深入剖析,以帮助读者全面理解UML的价值及其在软件开发过程中的重要意义。
1 UML的版本演变
UML最早由Grady Booch、Ivar Jacobson和James Rumbaugh三位面向对象建模大师在1990年代中期提出,他们整合了Booch方法、OOSE和OMT三种方法,形成了最初的UML。1997年,UML 1.0由Object Management Group(OMG)正式接收并标准化,从此UML成为全球范围内统一的建模语言。
1.1 UML 1.x阶段:统一的开始
UML 1.0的推出标志着面向对象建模方法的融合。在这一阶段,UML主要侧重于建模语言的表达能力,提供了基本的图形化工具,如用例图、类图、顺序图等。但由于结构不够清晰,语义规范不够严格,导致在实际应用中存在一定的困扰。
后续的1.1、1.3、1.4版本逐步修复了早期版本中的一些问题,对元模型进行了优化,也增强了与开发工具的集成能力。然而,UML 1.x整体上依旧偏重于表达模型,而缺乏系统性的扩展机制与形式化支持。
1.2 UML 2.x阶段:功能的扩展与深化
2003年,OMG发布了UML 2.0,这是一个重要的转折点。UML 2.0不仅重构了元模型,还引入了更多种类的图形、增强了动态图的表现力,并支持模型驱动开发(MDD)的需求。
之后,UML 2.1至2.5逐步修订语法规范,引入了Profile机制以支持领域建模,提升了可扩展性。UML 2.x系列提供的建模能力更加强大、精细,支持从需求分析到设计、实现的全生命周期建模,成为现代软件工程中建模工具的主流选择。
2 UML图的分类概述
UML图可根据系统的“结构”与“行为”两个维度划分为两大类:静态图(也称结构图)与动态图(也称行为图)。这种分类方式有助于从不同视角理解系统,建立完整的系统模型。
静态图关注的是系统中各个组成部分的结构关系,即“系统是由哪些元素组成的,它们之间是什么关系”。而动态图则用于表示系统中各元素在运行过程中的动态交互,关注“系统在运行时的行为与状态变化”。
3 UML静态图详解
静态图的主要任务是描述系统结构,是系统设计阶段的基础。它们有助于开发者理解系统模块、组件、类之间的关系,从而合理划分职责、确定依赖。
3.1 类图(Class Diagram)
类图是最常用、最核心的UML图,用于展示系统中的类、接口及其之间的关系,如继承、关联、依赖、实现等。通过类图,开发者可以清晰地看到系统的静态结构,了解各个类的属性和操作,以及它们之间的连接方式。
类图不仅是面向对象设计的基础,也为代码实现提供了蓝图。在大型系统开发中,合理的类图设计能够显著提升系统的可维护性和可扩展性。
3.2 对象图(Object Diagram)
对象图是类图的一个实例化视图,用于描述某一时刻系统中对象的具体状态及其间的链接。它常用于调试阶段,帮助开发人员理解实例间的实际关系。
对象图和类图的关系类似于对象与类的关系。通过对象图可以检验类图中设计的合理性和一致性。
3.3 组件图(Component Diagram)
组件图用于描述系统中各个组件(例如:服务、模块、库)之间的依赖关系,主要用于软件的物理架构建模。在分布式系统或大型平台开发中,组件图有助于分析部署结构和接口依赖。
3.4 部署图(Deployment Diagram)
部署图描述系统在硬件层面的部署结构,包括各节点(服务器、客户端等)及其之间的通信路径。它展示的是运行时的物理视图,对系统部署、性能分析、安全性评估有重要意义。
3.5 包图(Package Diagram)
包图用于展示类、组件等元素的逻辑组织结构。通过包的划分,可以对系统进行分层、分区管理,提升系统的模块化程度。
3.6 复合结构图(Composite Structure Diagram)
复合结构图强调类或组件的内部结构,主要用于描述部件的组合关系及通信机制。在建模面向组件的系统或嵌入式系统时尤其有用。
4 UML动态图详解
动态图用于展示系统运行时的行为、状态变化与交互模式,是描述系统逻辑与流程的关键工具。
4.1 用例图(Use Case Diagram)
虽然很多资料中将用例图归为静态图,但实际上它更关注用户与系统之间的交互,因此在本节中归为动态图。用例图通过“角色+用例”来展现系统功能点及其对外暴露的行为,是需求分析阶段的核心工具。
通过用例图,开发团队能够清晰地识别用户需求,为后续设计提供指引。
4.2 顺序图(Sequence Diagram)
顺序图用于展示对象之间按照时间顺序的消息传递,是描述交互行为的最常用图形之一。它强调时间线上的消息流,非常适合用于建模用例实现流程。
顺序图不仅能够清晰表现对象的协作顺序,也有助于分析业务流程的完整性与正确性。
4.3 活动图(Activity Diagram)
活动图描述系统中的控制流和数据流,类似流程图,常用于展示业务逻辑、工作流和算法步骤。它特别适合用于建模操作流程、条件分支与并发控制。
在需求分析与设计中,活动图常被用于细化用例描述或辅助实现逻辑的推导。
4.4 状态图(State Machine Diagram)
状态图主要描述对象在生命周期中的状态转移及触发事件。它适用于状态驱动的对象,如订单、工作流任务、网络协议等。
状态图对于理解系统响应事件的行为非常关键,在嵌入式系统、控制系统等领域应用广泛。
4.5 通信图(Communication Diagram)
通信图(也称协作图)与顺序图类似,主要描述对象间的消息交换,但强调的是结构上的关系而非时间顺序。适合用于分析系统组件之间的协作关系。
4.6 定时图(Timing Diagram)
定时图用于精确描述对象状态随时间变化的模式,强调时间精度,常用于实时系统的建模。它可以显示对象或系统状态与时间之间的对应关系,便于识别时序性错误或性能瓶颈。
5 静态图与动态图的协同作用
在实际的软件开发过程中,单靠某一类图很难完整描绘系统全貌。静态图提供结构性的蓝图,而动态图则补充运行时的动态行为,两者相辅相成。
例如,在开发一个订单管理系统时,可以通过用例图识别用户操作,通过类图定义订单、商品等类的结构,通过顺序图描述下单流程,通过状态图管理订单状态变化。如此,系统的结构与行为得以有机统一,减少理解偏差,提高开发效率。
结语
UML作为现代软件工程的核心建模工具,随着版本的演进不断适应新的开发模式与系统复杂度。通过掌握静态图与动态图的各类图形及其功能,开发者不仅可以更清晰地分析需求、设计架构,还能在沟通、协作、文档编制等方面大大提高效率。
建模不仅仅是一种技术手段,更是一种思维方式。唯有理解每一张UML图的用途与背后的建模哲学,才能真正发挥UML在软件开发过程中的巨大价值。
相关文章:
深入解析UML图:版本演变、静态图与动态图详解
目录 前言1 UML的版本演变1.1 UML 1.x阶段:统一的开始1.2 UML 2.x阶段:功能的扩展与深化 2 UML图的分类概述3 UML静态图详解3.1 类图(Class Diagram)3.2 对象图(Object Diagram)3.3 组件图(Comp…...
老旧测试用例生成平台异步任务与用户通知优化
在现代 Web 开发中,异步任务处理和用户通知是两个重要的功能。由于老旧测试平台【测试用例生成平台,源码分享】进行智能化升级后,未采用异步任务处理,大模型推理时间较长,导致任务阻塞,无法处理其他任务&am…...
数据结构初阶:队列
本篇博客主要讲解队列的相关知识。 目录 1.队列 1.1 概念与结构 1.2 队列头文件(Queue.h) 1.2.1 定义队列结点结构 1.2.2 定义队列的结构 1.3 队列源代码(Queue.h) 1.3.1 队列的初始化 1.3.2 队列的销毁 1.3.3 入队---队尾 1…...
苍穹外卖。12 数据统计
12.1 工作台 12.1.1 需求分析与设计 12.1.2 代码导入 12.1.3 测试 测试通过 12.2 Apache POI 12.2.1 需求分析与设计 12.2.2 案例 column表示索引行...
WebSocket 和 HTTP长轮询
一、HTTP长轮询(Long Polling) 1. 工作原理 传统轮询(低效):客户端每隔几秒向服务器发一次请求,问“有新数据吗?”,即使服务器没有数据也会立即返回“无”。长轮询(改进…...
高等数学同步测试卷 同济7版 试卷部分 上 做题记录 第三章微分中值定理与导数的应用同步测试卷 B 卷
第三章微分中值定理与导数的应用同步测试卷 B 卷 一、单项选择题(本大题共5小题,每小题3分,总计15分) 1. 2. 3. 4. 5. 二、填空题(本大题共5小题,每小题3分,总计15 分) 6. 7. 8. 9. 10. 三、求解下列各题(本大题共5小题,每小题6分,总计 3…...
生成式引擎优化(GEO)发展史与行业标准演变
一、生成式引擎优化(GEO)发展史与行业标准演变 随着 ChatGPT、Bard、Claude、文心一言等生成式AI搜索产品快速发展,GEO(Generative Engine Optimization,生成式引擎优化)也应运而生,成为继SEO、…...
美客多自养号测评技术解析:如何低成本打造安全稳定的测评体系
美客多(MercadoLibre)自养号测评系统的搭建需综合考虑硬件、软件、网络环境及操作流程的合规性,以下是基于多篇行业指南整理的核心步骤与要点: 一、前期规划与准备 1. 明确目标与规则 • 确定测评目的(如提升产品曝…...
STM32单片机入门学习——第36节: [11-1] SPI通信协议
写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.14 STM32开发板学习——第36节: [11-1] SPI通信协议 前言开发板说明引用解答和科普一…...
Qt QML - qmldir使用方法详解
以实际例子看qmldir的使用 1.搞一个qmldir2.让QML找到你的qmldir (重点).pro 工程文件QQmlApplicationEngine加载主QML处 3.用起来你的模块 qmldir是Qt QML模块化的基石,其设计初衷是为解决QML文件的组织、复用和依赖管理问题,。只需要在每个…...
AI大模型赋能工业制造:智能工厂的全新跃迁路径
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言:从自动化到智造化,工业领域的AI革命正悄然发生 在过去几十年中,制造业经历了机械化、电气化和自动化三次浪潮。如今,第四次工业革命——以人工智能、大数据、云计算、物联网为代表的“工业…...
LanDiff:赋能视频创作,语言与扩散模型的融合力量
自从 Wan 2.1 发布以来,AI 视频生成领域似乎进入了一个发展瓶颈期,但这也让人隐隐感到:“DeepSeek 时刻”即将到来!就在前几天,浙江大学与月之暗面联合推出了一款全新的文本到视频(T2V)生成模型…...
Windows 图形显示驱动开发-WDDM 1.2功能~显示设备的容器id支持
容器 ID 设备驱动程序接口 (DDI) 在显示微型端口驱动程序中实现此函数和结构: DxgkDdiGetChildContainerIdDXGK_CHILD_CONTAINER_ID 容器 ID 说明 监视设备中的新功能可以提供更好的用户体验。 具体而言,通用串行总线 (USB) 集线器是监视器上用于连…...
基于PyQt5和OpenCV的传统图像分割应用UI程序
目录 1. 程序概述 2. 用户界面设计 主窗口布局 图像显示区域 控制面板区域 3. 核心功能实现 图像处理功能 关键方法 4. 特色实现 区域生长算法改进 分水岭算法改进 GrabCut算法改进 5. 用户体验优化 6. 技术栈 7. 使用说明 8. 完整代码 9. 测试结果 本文实现了…...
java使用HTTP实现多线程爬取数据
Java中使用HTTP多线程爬取数据。首先,我得理解他们的需求。可能想要高效地抓取大量网页数据,而单线程可能不够快,所以需要多线程来提高效率。不过,多线程爬虫需要考虑的问题挺多的,比如线程安全、请求频率控制、异常处…...
08【基础学习】串口通信(三):收发数据包+数据校验
收发数据包数据校验 1、和校验异或校验1.1、HEX固定长度数据包校验1.2、HEX不固定长度数据包校验 2、CRC校验 1、和校验异或校验 和校验:将接收到的数据全部相加后,取结果的最后一个字节的数据 异或校验:将接收到的数据全部相异或后ÿ…...
已开源!CMU提出NavRL :基于强化学习的无人机自主导航和动态避障新方案
导读在无人机技术快速发展的今天,如何确保无人机在复杂动态环境中的安全飞行成为一个关键挑战。传统的导航方法通常将决策过程分解为预测和规划两个独立模块,这种手工设计的系统虽然在特定环境中表现良好,但当环境条件发生变化时,…...
C++ (类的设计,对象的创建,this指针,构造函数)
类的设计 C对结构体是有增强的 可以包含函数作为结构体成员 可以直接定义变量 在结构体成员函数里面可以直接访问结构体成员变量 struct student{string name;int age;float score;void play_game(const string &name);}void student::play_game(const string game){}…...
【C++】——lambda表达式
🌟 前言:C Lambda表达式,当函数开始"叛逆期" 你是否有过这样的崩溃瞬间? 为了写个只用到一次的排序规则,被迫定义了一个类在std::for_each里塞函数指针,代码瞬间变成"古董级"写法看着层的循环…...
DHCP简单例子
本文描述了使用ENsp模拟DHCP Global和DHCP 中继两种简单配置过程。 拓朴图 DHCP全局配置 此配置较为简单,因为全局既支持局域网,也支持跨网络分配。 # DHCP Server1 <Huawei>system-view [Huawei]sysname server1 [server1]dhcp enable …...
Spark-SQL简介及核心编程
Spark-SQL概述:是Spark用于结构化数据处理的模块,前身是Shark。Shark基于Hive开发,使SQL-on-Hadoop性能大幅提升,但对Hive依赖制约了Spark发展。SparkSQL汲取Shark优点并重新开发,在数据兼容、性能优化和组件扩展上优势…...
LDAP渗透测试
LDAP渗透测试 1.LDAP协议概述2.LDAP写公钥3.暴力破解LDAP4.LDAP信息收集ldapdomaindumpwindapsearch工具ldapsearch 1.LDAP协议概述 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是一种访问和管理目录服务的应用层协议&am…...
观察者模式(行为模式)
观察者模式 观察者模式属于行为模式,个人理解:和发布订阅者魔模式是有区别的 细分有两种:推模式和拉模式两种,具体区别在于推模式会自带推送参数,拉模式是在接收通知后要自己获取更新参数 观察者模式(Obs…...
Spark SQL
Spark SQL Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。 Spark SQL特点 易整合。无缝的整合了 SQL 查询和 Spark 编程 统一的数据访问。使用相同的方式连接不同的数据源 兼容 Hive。在已有的仓库上直接运行 SQL 或者 HQL 标准数据连接。通过 JDBC…...
周末学习笔记:Python文件操作(结构化数据转换与文件处理)
目录 一、任务目标 二、实现步骤与代码解析 2.1 数据准备阶段 关键点解析: 2.2 数据转换核心代码 三、关键技术解析 3.1 字符串处理方法 3.2 数据结构转换 3.3 文件写入技巧 四、执行结果验证 输入文件t1.txt内容: 输出文件t2.txt内容&am…...
【PCIE736-0】基于 PCIE X16 总线架构的 4 路 QSFP28 100G 光纤通道处理平台
产品概述 PCIE736-0 是一款基于 PCIE 总线架构的 4 路 QSFP28 100G 光纤通道适配器,该板卡具有 1 个 PCIe Gen3x16 主机接口、一共 4个 QSFP28 100G 光纤接口,可以实现 4 路 QSFP28 100G 光纤的数据实时采集、实时缓存与 PCIE 高速传输。该板卡采用 Xil…...
PyCharm 开发工具 修改背景颜色
PyCharm 开发工具 修改背景颜色 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是有学习/理解关联性,希望对您有用~ PyCharm 开发工具 修改背景颜色 文章目录 PyCharm 开…...
linux Shell编程之循环语句(三)
目录 一. for 循环语句 1. for语句的结构 2. for 语句应用示例 (1) 根据姓名列表批量添加用户 (2) 根据 IP 地址列表检查主机状态 二. 使用 while 循环语句 1. while 语句的结构 2. while 语句应用示例 (1) 批量添加规律编号的用户 (2) 猜价格游戏 三. until 循环语…...
GCC和GDB基础知识
1 GCC和G 一套开源的编译器,支持 C、C、Fortran 等语言。它负责将人类编写的源代码(如 .c 文件)翻译成计算机能执行的二进制文件(如 .exe)。 核心作用: 预处理:处理宏…...
网络复习二(TCP【3】)
一、为什么TIME_WAIT等待的时间是2MSL? MSL:报文最大生存时间 我们要知道TCP报文是基于IP协议生存的,而在IP头中有一个TTL(经过路由跳数),当TTL为0使,数据报被丢失,同时发送ICMP报…...
【5G通信】通过RRC重配实现功率调整的可能性
在5G网络中,通过解析UE Capability Information消息中的RF Parameters字段实现终端发射功率的动态调整,需要结合协议规范、射频特性及网络控制策略。以下是技术实现流程及示例: 一、RF Parameters关键字段解析 根据3GPP TS 38.331和TS 38.10…...
UE 使用事件分发器设计程序
【双字精译】虚幻引擎中的设计模式:观察者模式——Ali Elzoheiry|游戏开发游戏编程模式游戏设计模式虚幻蓝图编程事件分发器UnrealEngineUE5_哔哩哔哩_bilibili 创建一个事件分发器,这里是放在死亡事件里 比如计算场景中的敌人数量,这个UI是…...
前端面试宝典---原型链
引言----感谢大佬的讲解 大佬链接 原型链示意图 原型链问题中需要记住一句话:一切变量和函数都可以并且只能通过__proto__去找它所在原型链上的属性与方法 原型链需要注意的点 看上图可以发现 函数(构造函数)也可以通过__proto__去找到原…...
ViT 模型讲解
文章目录 一、模型的诞生背景1.1 背景1.2 ViT 的提出(2020年) 二、模型架构2.1 patch2.2 模型结构2.2.1 数据 shape 变化2.2.2 代码示例2.2.3 模型结构图 2.3 关于空间信息 三、实验3.1 主要实验3.2 消融实验 四、先验问题4.1 归纳偏置4.2 先验or大数据&…...
【技术文章的标准结构与内容指南】
技术文章的标准结构与内容指南 技术文章是传递专业知识、分享实践经验的重要媒介。一篇高质量的技术文章不仅能够帮助读者解决问题,还能促进技术交流与创新。以下是技术文章通常包含的核心内容与结构指南。 1. 标题 一个好的技术文章标题应当: 简洁明…...
Mysql概述
一、数据库相关概念 1.数据库(Data Base ,简称DB)是长期存储在计算机中有组织、可管理、可共享的数据集合。 2.数据库管理系统(Database Management System,简称为 DBMS)是管理数据库的系统软件 3.MySQL数据库全称为MySQL数据库管理系统 3.SQL语言(S…...
系统设计模块之安全架构设计(身份认证与授权(OAuth2.0、JWT、RBAC/ABAC))
一、OAuth 2.0:开放授权框架 OAuth 2.0 是一种标准化的授权协议,允许第三方应用在用户授权下访问其资源,而无需直接暴露用户密码。其核心目标是 分离身份验证与授权,提升安全性与灵活性。 1. 核心概念与流程 角色划分ÿ…...
如何管理“灰色时间”导致的成本漏洞
明确时间记录机制、优化流程透明度、应用自动化工具、强化绩效考核机制、提高员工时间意识 来有效管理。其中,明确时间记录机制 是最关键的一步。通过统一的时间记录平台,例如Toggl Track、Clockify或企业级工时系统,不仅可以实时掌握员工工作…...
程序化广告行业(84/89):4A广告代理公司与行业资质解读
程序化广告行业(84/89):4A广告代理公司与行业资质解读 大家好!在探索程序化广告行业的道路上,每一次知识的分享都是我们共同进步的阶梯。一直以来,我都希望能和大家携手前行,深入了解这个充满机…...
MTK Android12-13 -Intent Filter Verification Service 停止运行
MTK Android12-13 -Intent Filter Verification Service 停止运行 问题修复 文章目录 参考资料解决方案-修改文件源码分析源码 StatementService配置加载config_appsNotReportingCrashesActivityManagerService -retrieveSettings 加载配置AppErrors-loadAppsNotReportingCrash…...
Sentinel源码—1.使用演示和简介二
大纲 1.Sentinel流量治理框架简介 2.Sentinel源码编译及Demo演示 3.Dashboard功能介绍 4.流控规则使用演示 5.熔断规则使用演示 6.热点规则使用演示 7.授权规则使用演示 8.系统规则使用演示 9.集群流控使用演示 5.熔断规则使用演示 (1)案例说明熔断和降级 (2)Sentin…...
基于Geotools的PostGIS原始操作之CQL过滤及按属性名称生成面属性时间-以湖北省地级市行政区划为例
目录 前言 背景与意义 技术方法概述 一、CQL查询实现 1、CQL查询原理 2、Geotools中的CQL实现 二、SLD编程式样式生成 1、获取唯一的分类值 2、生成不同颜色分类 3、集成生成SLD的Style文件 三、总结 前言 随着地理信息系统(GIS)技术的快速发展…...
Linux内核中struct net_protocol的early_demux字段解析
背景问题 在内核版本4.19.0-25的头文件中,struct net_protocol结构体的定义未显式包含early_demux字段。然而,在内核版本4.19的源代码中可以看到tcp_protocol实例化时却对该字段进行了赋值: static struct net_protocol tcp_protocol = {.early_demux = tcp_v4_earl…...
TLS协议四次握手原理详解,密钥套件采用DH密钥交换算法
目录 1.TLS协议握手概述 2.TLS协议握手具体步骤 2.1.TLS第一次握手 2.2.TLS第二次握手 2.3.TLS第三次握手 2.4.TLS第四次握手 3.DH密钥交换算法 1.TLS协议握手概述 第一步客户端会发起一个消息,携带了TLS的版本号,客户端随机数,密码套…...
React 更新state中的对象
更新 state 中的对象 state 中可以保存任意类型的 JavaScript 值,包括对象。但是,你不应该直接修改存放在 React state 中的对象。相反,当你想要更新一个对象时,你需要创建一个新的对象(或者将其拷贝一份)…...
祁连山国家公园shp格式数据
地理位置:祁连山国家公园位于中国西北部,横跨甘肃省与青海省交界处,主体处于青藏高原东北边缘。总面积约5.02万平方公里,是中国首批设立的10个国家公园之一。 设立背景 试点启动:2017年,祁连山国家公园体制…...
电梯设备与电源滤波器:现代建筑中的安全守护者与电力净化师
在现代都市的钢铁森林中,电梯作为垂直交通的动脉,承载着无数人的日常出行。与此同时,在电气系统的隐秘角落,电源滤波器则默默扮演着“电力净化师”的角色,保障着各类电子设备的稳定运行。电梯设备与电源滤波器…...
Qt样式表(窗口、按钮之类,有图片和代码详细注释)
Qt样式表 1、前言2、QWdiget窗口添加背景图片2.1使用Frame解决 3、主题1(黑色背景发光边框冷色调)3.1 QWidget3.2 QPushButton3.3QLineEdit3.4 QTextEdit 4、主题二(极简冰川蓝)4.1QWidget4.2 QLineEdit4.3QTextEdit4.4QPushButto…...
在Ubuntu下进行单片机开发是否需要关闭Secure Boot
1. Secure Boot的作用 功能:Secure Boot是UEFI的安全功能,旨在阻止未经验证的驱动或操作系统启动,防止恶意软件篡改引导过程。 影响范围:它主要限制的是操作系统启动阶段加载的内核级驱动(如显卡驱动、虚拟化模块&…...
【Python爬虫】简单案例介绍4
本文继续接着我的上一篇博客【Python爬虫】简单案例介绍3-CSDN博客 目录 3.4 完整代码 3.4 完整代码 此小节给出上述案例的完整代码, # encodingutf-8 import re, json, requests, xlwt, csv import pandas as pd from lxml import etree from bs4 import Beauti…...