当前位置: 首页 > news >正文

通义灵码:AI 编码的强大助力

一、通义灵码简介

通义灵码是阿里云推出的智能编码辅助工具,以通义大模型为基础,提供多种强大功能助力开发者高效编码。

通义灵码集成了行级 / 函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力。例如,在编码过程中,根据当前语法和跨文件的代码上下文,实时生成行、函数建议代码,极大地提升了编码的连续性和流畅性。通过自然语言描述功能需求,可直接在编辑器区生成代码,让编码过程更加直观便捷。

通义灵码支持多种编程语言,包括 Java、Python、Go、C#、C/C++、JavaScript、TypeScript、PHP、Ruby、Rust、Scala、Kotlin 等主流编程语言。同时,它支持 JetBrains IDEs(如 IntelliJ IDEA、PyCharm、GoLand、WebStorm 等)和 Visual Studio Code 等主流 IDE,并且兼容多种操作系统,如 Windows 7 及以上、macOS、Linux。

目前,通义灵码插件下载量突破 400 万,每天推荐代码超 3000 万次,被开发者采纳代码行数超亿行。在中国信通院可信 AI 代码大模型测评中,通义灵码获得首个最高级。在《2024 中国开发者调查报告》中,通义灵码使用率位居第一,占比 19%。一汽集团、中华财险以及哈啰集团等企业都在使用通义灵码,AI 代码生成占比近 30%。

通义灵码对个人开发者免费开放使用,降低了使用门槛,让更多开发者能够享受到 AI 编码带来的便利。为满足企业客户需求,通义灵码推出标准版、专属版,标准版可接入企业私域知识,专属版提供公共云上专属实例部署等服务。

二、主要功能

(一)代码智能生成

通义灵码的代码智能生成功能涵盖了行级与函数级实时续写以及自然语言生成代码等多个方面,为开发者带来了极大的便利。在行级与函数级实时续写方面,当开发者在编写代码时,通义灵码能够根据当前代码文件及相关代码文件的上下文,自动为开发者生成行级或函数级的代码建议。例如,在编写一个复杂的函数时,通义灵码可以根据已有的代码逻辑,智能地预测下一行代码的可能内容,帮助开发者快速完成编码任务。据统计,使用通义灵码的开发者在代码编写速度上平均提高了 30%。

在自然语言生成代码方面,开发者只需用自然语言描述所需的功能,通义灵码就能自动生成相应的代码。比如,开发者描述 “生成一个随机数生成器函数”,通义灵码会迅速生成符合要求的代码片段。这种方式极大地降低了编程的门槛,即使是编程新手也能轻松上手。

(二)研发智能问答

通义灵码的研发智能问答功能是开发者的得力助手。它能够回答开发者在编程过程中遇到的各种问题,无论是关于语言特性的查询,还是寻求最佳实践的建议,都能提供及时且准确的答案。对于新手开发者来说,这个功能尤其有用,能够加速他们的学习过程。例如,当开发者遇到一个特定的编程问题,如 “如何在 Java 中实现多线程”,通义灵码会给出详细的代码示例和解释,帮助开发者快速理解和掌握相关知识。

(三)单元测试生成

单元测试对于确保代码质量至关重要,通义灵码的单元测试生成功能能够自动创建测试用例。它可以分析代码的功能和逻辑,生成覆盖各种情况和边界的测试用例,同时生成可执行的测试代码,支持常见的测试框架如 JUnit、Mockito、Spring Test 等。据实际使用反馈,通义灵码生成的测试用例能够覆盖约 90% 的边界条件和异常情况,大大提高了代码的质量和稳定性。

(四)代码注释生成

良好的代码注释可以提高代码的可读性和可维护性。通义灵码的代码注释生成功能能够自动为代码添加有意义的注释。它可以理解代码的功能和逻辑,生成简洁明了的注释,同时遵循代码的规范和风格,支持常见的注释格式和工具。例如,对于一段复杂的代码,通义灵码生成的注释能够清晰地解释代码的作用和逻辑,让其他开发者更容易理解和维护。

(五)异常报错排查

在编程过程中,异常报错是不可避免的。通义灵码的异常报错排查功能能够分析异常或报错的信息,从海量的编程案例和经验中检索和抽取相关的解决方法,生成简单明了的解释和建议。当开发者遇到运行异常时,只需在控制栏点击通义灵码的图标,通义灵码就会结合运行代码、异常堆栈等报错上下文,快速给出排查思路或修复建议。据统计,使用通义灵码进行异常报错排查,开发者能够平均节省 50% 的故障排除时间。

三、特色优势

(一)深度理解代码

通义灵码能够深度理解代码,根据当前代码环境和上下文,智能地生成符合逻辑的代码片段。例如,当开发者在编写一个复杂的项目时,通义灵码可以准确地分析出代码的业务逻辑和需求,生成高质量的代码,不仅提升了代码的质量,还增强了可读性。据统计,使用通义灵码后,代码的可读性平均提高了 40%。它能够理解代码的语法、逻辑和风格,生成符合开发者意图和需求的代码,同时保持代码的规范性。这使得开发者可以更加专注于技术设计,高质高效地完成编码工作。

(二)双模引擎支持

通义灵码提供离线和在线模式的双模引擎支持。在离线模式下,即使没有网络连接,开发者也能继续进行编码工作,确保开发过程的连续性。例如,在一些网络环境不稳定的地区或者在没有网络的场所,开发者可以使用极速离线模型(Java/Python)进行代码补全和生成,不耽误工作进度。而在在线模式下,通义灵码可以连接云端大模型,获取最新的 AI 训练数据,为开发者提供更强大的功能和更准确的代码建议。开发者可以根据不同的网络环境和补全强度需求,一键切换两种模式,实现了开发过程的灵活性。

(三)多 IDE 兼容性

通义灵码具有强大的多 IDE 兼容性,支持多种主流 IDE,如 JetBrains IDEs(包括 IntelliJ IDEA、PyCharm、GoLand 等)和 Visual Studio Code 等。这确保了在不同开发环境下的无缝使用体验,满足了开发者多样化的需求。无论开发者习惯使用哪种 IDE,都可以轻松安装通义灵码插件,享受其带来的智能编码辅助功能。例如,一位开发者在不同的项目中可能会使用不同的 IDE,通义灵码的多 IDE 兼容性使得他无需为了适应不同的工具而调整自己的工作习惯,大大提高了工作效率。

(四)AIGC 对软件研发的影响

  1. 提升人员技能:通义灵码结合海量高质量的研发知识数据,能够拉平初级工程师的水平到中级或中高级。对于资深开发者,AIGC 能帮助更快地定位修复问题,提升全栈和架构能力。例如,一位初级开发者在使用通义灵码后,编码效率提升了一倍,能够更快地完成任务,逐渐成长为中级开发者。
  1. 减少协同消耗:在 AIGC 时代,AI 有望进化成超级个体,如 Agent 或 Multi-agent,一些单点的任务或独立的缺陷由 AI Agent 互相配合处理,提高协同效率。人类为了与 AI 交流也会沉淀出更详实的需求文档和上下文。
  1. 控制成本:开发者一天有七成的代码编写时间是在做事务性劳动,如增删改查。通义灵码能将这部分生产力解放出来,让企业成员投入更多时间到创新事物和业务思考上,降低企业整体的研发成本,提升企业核心竞争力。
  1. 管理数字资产:AIGC 浪潮促使企业重视无形资产,管理好企业知识信息库,通过 SFT、RAG 等方式将知识赋予给大模型,形成正向循环。例如,企业可以利用通义灵码将优质的代码和文档沉淀下来,避免代码腐化。

通义灵码的这些特色优势使其在软件研发领域具有重要的地位,为开发者提供了强大的工具,推动了软件研发的智能化进程。

四、下载与安装

(一)官方安装教程

通义灵码的官方安装教程可以在阿里云开发者社区和通义灵码产品官网获取。在官网中,开发者能够找到详细的下载链接以及清晰的安装指南,这些指南将引导开发者顺利完成通义灵码的安装过程。无论是新手开发者还是经验丰富的专业人士,都能轻松按照指南进行操作。

(二)支持的 IDE 环境

  1. Visual Studio Code
    • 准备工作:通义灵码需要在操作系统为 Windows 7 及以上、macOS、Linux 的环境下运行,同时需要安装 Visual Studio Code 1.68.0 及以上版本。
    • 安装步骤:
      • 方法一:从插件市场安装。打开 Visual Studio Code 扩展窗口,搜索 “TONGYI Lingma”,找到通义灵码后单击安装。安装完成后,请重启 Visual Studio Code。
      • 方法二:下载安装包安装。单击下方链接,下载 Visual Studio Code 的 VSIX 安装包;⇩ TONGYI Lingma - VS Code。下载完安装包后,打开 Visual Studio Code 后,单击扩展,单击更多按钮,在下拉菜单中单击 “从 VSIX 安装”,选择下载的 VSIX 文件后安装。安装完成后,请重启 Visual Studio Code。
    • 登录并开启智能编码之旅:重启 Visual Studio Code 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。如果安装后在侧边导航上找不到通义灵码入口,可鼠标聚焦在侧边导航后右键查看,勾选通义灵码后即可将插件入口配置在侧边导航上。单击登录后,将前往登录页面,完成登录后可进入 IDE 客户端开始使用。
  1. JetBrains IDEs
    • 准备工作:操作系统为 Windows 7 及以上、macOS、Linux;下载并安装兼容的 JetBrains IDEs 2020.3 及以上版本,通义灵码与以下 IDE 兼容:IntelliJ IDEA(旗舰版、社区版、教育版)、Android Studio、CLion、GoLand、PhpStorm、PyCharm(专业版、社区版、教育版)、Rider、RubyMine、RustRover、WebStorm 等。更多详细信息,请参阅 JetBrains IDE 工具查找器。
    • 安装步骤:
      • 方法一:从插件市场安装。打开 IntelliJ IDEA 设置窗口,在插件市场中搜索 “TONGYI Lingma”,找到通义灵码后单击安装。安装完成后,请重启 IntelliJ IDEA。
      • 方法二:下载安装包安装。单击下方链接,下载 JetBrains IDEs 的 zip 安装包;⇩ TONGYI Lingma - JetBrains。下载完安装包后,打开 IntelliJ IDEA 后,打开设置,在插件管理的设置下拉菜单中单击 “从本地安装插件”,选择下载的 zip 文件后安装。安装完成后,请重启 IntelliJ IDEA。
    • 登录并开启智能编码之旅:重启 IntelliJ IDEA 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。单击登录后,将前往登录页面,完成登录后可进入 IDE 客户端开始使用。

五、应用场景

(一)企业知识库检索增强

通义灵码的企业知识库检索增强功能为企业开发带来了极大的便利。对于新人入职场景,通义灵码能够帮助他们快速学习企业编码规范、安全规范和环境准备等内容。企业管理员在通义灵码的知识库管理后台添加相关知识文档后,新入职员工可以在通义灵码插件端的问答面板上直接提问咨询。例如,输入 “#team docs 这段代码是否符合代码规范,帮我优化”,通义灵码就会召回相关文档片段,并针对文档内容进行总结回答,大大提高了新人的学习效率。

在根据组件库文档生成代码方面,通义灵码能够加速软件开发过程。以前端开发为例,开发者可以将关键组件库的帮助文档上传到通义灵码的知识管理中。当遇到具体需求时,在通义灵码问答区域通过 “#team docs” 调用企业知识库,快速获得适合自己技术栈的代码建议和示例。比如,要实现 “显示未读消息计数” 的需求,开发者可以先理解需求,识别关键组件为数字显示单元及数据更新逻辑。然后在灵码知识库中查找适用的组件,如 badge 组件,利用 Vue 的数据绑定机制实现数据动态更新。最后,直接在通义灵码中以自然语言形式表述需求,通义灵码会快速生成代码框架,开发者只需做简单调整即可适应设计细节。

当需求发生变更时,通义灵码也能迅速应对。例如,新需求为 “只需标记未读而不展示具体数字”,开发者可以继续基于 “#team docs” 提问,通义灵码会立即根据新需求和已有知识库内容,提供 API 调用调整的建议及相应的代码示例,确保开发的灵活性和效率。

此外,通义灵码还可以根据接口文档生成示例代码。程序员在开发程序过程中,常常苦于找不到帮助文档和示例代码,特别是一些内部非通用的接口实现。使用通义灵码,可以将知识检索增强生成能力应用到 API 调用场景中,为程序员提供所需的代码示例和帮助文档。

(二)快速开发应用

通义灵码能够在几分钟内帮助开发者完成应用开发,极大地提升了开发效率。它的强大功能使其在多个行业都有广泛的应用。

在软件开发行业,通义灵码可以快速生成高质量的代码片段,提高开发效率和质量。其单元测试生成、代码优化等功能有助于构建更加健壮和可靠的软件系统。例如,在一个大型项目中,开发者可以使用通义灵码的自然语言生成代码功能,快速实现复杂的业务逻辑,然后利用单元测试生成功能确保代码的稳定性。

对于学习编程的人来说,通义灵码是一个非常好的学习工具。它能够通过自然语言生成代码的方式帮助学习者快速掌握编程技能,并通过实时续写和代码解释等功能加深对编程知识的理解。比如,初学者可以用自然语言描述一个简单的功能需求,通义灵码会生成相应的代码,同时提供代码解释,帮助初学者理解代码的逻辑。

在技术交流方面,通义灵码能够提供快速的问答服务,帮助开发者迅速解决疑问和难题。同时,其生成的代码注释和解释也有助于他人更好地理解和使用代码。例如,在一个技术交流论坛上,开发者可以使用通义灵码回答其他开发者的问题,分享自己的经验和知识。

相关文章:

通义灵码:AI 编码的强大助力

一、通义灵码简介 通义灵码是阿里云推出的智能编码辅助工具,以通义大模型为基础,提供多种强大功能助力开发者高效编码。 通义灵码集成了行级 / 函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等…...

docker 容器启动详解

1.启动容器 示例 1:启动一个复杂的 Web 应用容器 docker run -d \ -p 8080:80 \ -v /data/webapp:/app \ -e APP_ENVproduction \ -e DB_HOSTdb.example.com \ -it \ --network my_network \ --name webapp_container \ --restart always \ --memory 1g \ --cpu-sh…...

【spring ai】java 实现RAG检索增强,超快速入门

rag 需求产生的背景介绍: 在使用大模型时,一个常见的问题是模型会产生幻觉(即生成的内容与事实不符),同时由于缺乏企业内部数据的支持,导致其回答往往不够精准和具体,偏向于泛泛而谈。这些问题…...

【Java SE 题库】递归的魅力之--> 汉诺塔问题

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 题目 2. 分析 2.1 图解 2.2 代码解析 3. 完整代码 3.1 运行截图 4. 小结 1. 题目 汉诺塔问题是一个经典的递归问题,源自一个古老的印度传…...

《为什么要在三层交换机 VLAN 上配置 IP 地址?》

如果在三层交换机上划分了 VLAN10 和 VLAN20 但没有给 IP 地址的情况下,只有相同 VLAN 的端口之间才能相互通信。 这是因为在没有为 VLAN 配置 IP 地址(即没有创建 SVI,交换虚拟接口)时,三层交换机仅作为一个二层设备…...

Git的基本使用入门

参考:Git速查 git的基本概念 git常用命令大部分是基于三大分区来执行的。先来了解一些专有名词吧。 工作区,也叫 Working Directory暂存区,也叫 stage,index版本库,也叫本地仓库,commit History 将代码推…...

Elasticsearch 入门

ES 概述 ES 是一个开源的高扩展的分布式全文搜索引擎。 倒排索引 环境准备 Elasticsearch 官方地址:https://www.elastic.co/cn/ 下载地址: 注意:9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的 h…...

WebSocket 集成 Spring Boot 的实战指南

🍁 作者:知识浅谈,CSDN签约讲师&博客专家,华为云云享专家,阿里云专家博主,InfoQ签约作者 📌 擅长领域:全栈工程师、爬虫、ACM算法,大数据,深度学习 &…...

无人机集群路径规划:四种优化算法(BKA、CO、PSO、PIO)求解无人机集群路径规划,提供MATLAB代码

一、单个无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化…...

第二届 龙信杯 电子数据取证竞赛部分Writeup

大佬文章: 龙信杯复现(23、24) | BthclsBlog 手机部分 资料:2024年第二届龙信杯 WP_2024龙信杯wp-CSDN博客 1.分析手机检材,请问此手机共通过adb连接过几个设备?[标准格式:3] 2 /data/a…...

偷啥的都有!

好久不做地铁了,昨个儿加班儿太晚,就没骑车回家。早上到了地铁站,想起我前一阵儿下雨时候,把自行车放在了地铁站,结果尾灯被人偷了! 真是偷啥的都有! 2024年10月15日 7:41...

【中文注释】planning_scene_tutorial.cpp

planning_scene_tutorial.cpp #include <rclcpp/rclcpp.hpp>// MoveIt 相关头文件 #include <moveit/robot_model_loader/robot_model_loader.h> #include <moveit/planning_scene/planning_scene.h> #include <moveit/kinematic_constraints/utils.h>…...

【Vue3】 h()函数的用法

目录 介绍 参数 使用案例 1.创建虚拟 DOM 元素 2. 组件的动态渲染 3. 创建功能组件 4.渲染动态属性 5. 使用插槽 6. 创建动态标签 介绍 h() 函数用于辅助创建虚拟 DOM 节点&#xff0c;它是 hypescript 的简称——能生成 HTML (超文本标记语言) 的 JavaScript&#x…...

Flask如何实现前后端分离项目

在现代Web开发中&#xff0c;前后端分离是一种常见的架构模式&#xff0c;其中前端和后端分别独立开发和部署&#xff0c;通过API进行通信。Flask作为后端框架&#xff0c;可以很容易地与前端框架&#xff08;如React、Vue.js或Angular&#xff09;配合使用来实现前后端分离。以…...

二维码生成器 1.02.41| 一站式QR码生成器和美化工具

二维码生成器是一个有用的QR码生成器应用程序。可以轻松地为网站链接、文本、WiFi、名片、短信、社交媒体账户等生成QR码。该应用支持更改QR码的颜色、码眼图案和框架&#xff0c;并可以添加徽标和文本&#xff0c;使QR码更加美观。使用此QR码生成器&#xff0c;可以使用设计精…...

腾讯云视立方·直播 SDK 合规使用指南

为帮助使用直播 SDK 的开发运营者&#xff08;以下简称“您”&#xff09;在符合个人信息保护相关法律法规、政策及标准的规定下合规接入、使用第三方SDK&#xff0c;深圳市腾讯计算机系统有限公司&#xff08;以下简称"我们"&#xff09;特制定《直播 SDK 接入使用说…...

在 Spring 中使用 @EhCache 注解作为缓存

文章目录 项目概况项目设置一个简单的 RESTful Web 服务Spring 整合 EhCache第 1 步&#xff1a;更新依赖项以使用 EhCache Spring 注解第 2 步&#xff1a;设置自定义缓存管理器第 3 步&#xff1a;配置 EhCache第 4 步&#xff1a;测试缓存 刷新缓存总结推荐阅读文章 EhCache…...

npm install进度卡在 idealTree:node_global: sill idealTree buildDeps

ping一下源&#xff1a;ping http://registry.npm.taobao.org/ ping不通&#xff0c;原因&#xff1a;原淘宝npm永久停止服务&#xff0c;已更新新域名~~震惊&#xff01;&#xff01;&#xff01; 重新安装&#xff1a;npm config set registry https://registry.npmmirror.c…...

力扣1031. 两个非重叠子数组的最大和

力扣1031. 两个非重叠子数组的最大和 题目解析及思路 题目要求找到两段长分别为firstLen 和 secondLen的子数组&#xff0c;使两段元素和最大 图解见灵神 枚举第二段区间的右端点&#xff0c;在左边剩余部分中找出元素和最大的第一段区间&#xff0c;并用前缀和优化求子数组…...

【Unity实战篇】 接入百度翻译,实现文本自动翻译功能

前言【Unity实战篇】 接入百度自动翻译,实现文本自动翻译功能一、获取百度翻译开发平台的APPID和密钥二、Unity中接入自动翻译功能三、Unity中实现自动翻译文本Text功能总结前言 日常在做项目的过程中,游戏本地化几乎已经成为必不可少的一步。本篇文章将演示怎样在Unity中接入…...

ubuntu samba

参考&#xff1a; 基于Ubuntu22.04的Samba服务器搭建教程&#xff08;新手保姆级教程&#xff09;_ubuntu samba-CSDN博客 当时按照这个不行&#xff1a; 主要做了这些修改 1、ufw 打开端口 这些都打开了 Samba服务使用的端口和协议如下1234: Port 137 (UDP) - NetBIOS 名…...

Linux系统和数据库常用的命令2

Linux系统和数据库常用的命令2 1、两台Linux机器ssh免密登录 client端登录server端需要免密&#xff0c;只需把公钥发送到server就可&#xff0c;会在server端生成一个authorized_keys文件 # 108机器上[rootclient ~]# ssh-keygen -t rsa // 非对称算法 Generating public/…...

Golang | Leetcode Golang题解之第468题验证IP地址

题目&#xff1a; 题解&#xff1a; func validIPAddress(queryIP string) string {if sp : strings.Split(queryIP, "."); len(sp) 4 {for _, s : range sp {if len(s) > 1 && s[0] 0 {return "Neither"}if v, err : strconv.Atoi(s); err …...

mermaid 图表相关

1.mermaid图表的代码 1.1 flowchart 流程图代码 flowchart TDA[Christmas] -->|Get money| B(Go shopping)B --> C{Let me think}C -->|One| D[Laptop]C -->|Two| E[iPhone]C -->|Three| F[fa:fa-car Car]1.2 sequece 时序图代码 sequenceDiagramAlice->&…...

Unity接入人工智能

在Unity接入人工智能中&#xff0c;本篇实现了接入百度智能云ai进行npc智能对话&#xff0c;通过http方式&#xff0c;并非插件&#xff0c;适合于所有支持Http链接的Unity版本。对于Chartgpt可以参考本篇内容的实现过程。 1-4节讲解测试&#xff0c;第5节讲解Unity中的实现&a…...

C语言笔记 14

函数原型 函数的先后关系 我们把自己定义的函数isPrime()写在main函数上面 是因为C的编译器自上而下顺序分析你的代码&#xff0c;在看到isPrime的时候&#xff0c;它需要知道isPrime()的样子——也就是isPrime()要几个参数&#xff0c;每个参数的类型如何&#xff0c;返回什么…...

Cpp::STL—list类的模拟实现(上)(13)

文章目录 前言一、结点类的实现二、迭代器类的实现迭代器类的存在意义迭代器类的模板参数构造函数运算符的重载--运算符的重载、!运算符的重载*运算符的重载->运算符的重载 总结 前言 注意本篇难度偏高&#xff0c;其主要体现在迭代器类的实现&#xff01;   什么&#xf…...

ListView的Items绑定和comboBox和CheckBox组合使用实现复选框的功能

为 ListView 控件的内容指定视图模式的方法&#xff0c;参考官方文档。 ComboBox 样式和模板 案例说明&#xff1a;通过checkBox和ComboBox的组合方式实现下拉窗口的多选方式&#xff0c;同时说明了ListView中Items项目的两种绑定方式. 示例&#xff1a; 设计样式 Xaml代码…...

PetaLinux工程的常用命令——petalinux-build

petalinux-build&#xff1a;编译项目或指定组件。 注&#xff1a;有些命令我没用过&#xff0c;瞎翻译有可能会翻译错了。 用法: petalinux-build [options] 可选参数: -h, --help 显示函数用法。 -p, --project <PROJECT> PetaLinuxSDK项目的路径。默认…...

【Qt】窗口预览(1)—— 菜单栏

窗口预览&#xff08;1&#xff09; 1. QMainWindow2. QMenuBar——菜单栏2.1 创建菜单栏/将菜单栏添加到widget中2.2 addMenu——在菜单栏中添加菜单2.3 在菜单中添加选项2.4 添加快捷键2.5 支持嵌套添加菜单2.6 添加信号2.7 添加分割线 1. QMainWindow Qt窗口是通过QMainWin…...