【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素
目录
1 -> @Builder
2 -> @BuilderParam8+
2.1 -> 引入动机
2.2 -> 参数初始化组件
2.3 -> 尾随闭包初始化组件
3 -> @Styles
4 -> @Extend
5 -> @CustomDialog
1 -> @Builder
可通过@Builder装饰器进行描述,该装饰器可以修饰一个函数,此函数可以在build函数之外声明,并在build函数中或其他@Builder修饰的函数中使用,从而实现在一个自定义组件内快速生成多个布局内容。
// Test_Builder.ets
@Component
struct CompB {@State CompValue: string = ''aboutToAppear() {console.info('CompB aboutToAppear.')}aboutToDisappear() {console.info('CompB aboutToDisappear.')}build() {Column() {Button(this.CompValue).margin(5)}}
}@Entry
@Component
struct CompA {size1: number = 100@State CompValue1: string = "Hello,CompValue1"@State CompValue2: string = "Hello,CompValue2"@State CompValue3: string = "Hello,CompValue3"// @Builder装饰的函数CompC内使用自定义组件CompB@Builder CompC(value: string) {CompB({ CompValue: value })}@Builder SquareText(label: string) {Text(label).fontSize(18).width(1 * this.size1).height(1 * this.size1)}// @Builder装饰的函数RowOfSquareTexts内使用@Builder装饰的函数SquareText@Builder RowOfSquareTexts(label1: string, label2: string) {Row() {this.SquareText(label1)this.SquareText(label2)}.width(2 * this.size1).height(1 * this.size1)}build() {Column() {Row() {this.SquareText("A")this.SquareText("B")}.width(2 * this.size1).height(1 * this.size1)this.RowOfSquareTexts("C", "D")Column() {// 使用三次@Builder装饰的自定义组件this.CompC(this.CompValue1)this.CompC(this.CompValue2)this.CompC(this.CompValue3)}.width(2 * this.size1).height(2 * this.size1)}.width(2 * this.size1).height(2 * this.size1)}
}
2 -> @BuilderParam8+
@BuilderParam装饰器用于修饰自定义组件内函数类型的属性(例如:@BuilderParam noParam: () => void),并且在初始化自定义组件时被@BuilderParam修饰的属性必须赋值。
2.1 -> 引入动机
当开发者创建自定义组件,并想对该组件添加特定功能时(例如在自定义组件中添加一个点击跳转操作)。若直接在组件内嵌入事件方法,将会导致所有引入该自定义组件的地方均增加了该功能。为解决此问题,引入了@BuilderParam装饰器,此装饰器修饰的属性值可为@Builder装饰的函数,开发者可在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的功能。
2.2 -> 参数初始化组件
通过参数初始化组件时,将@Builder装饰的函数赋值给@BuilderParam修饰的属性,并在自定义组件内调用该属性值。若@BuilderParam修饰的属性在进行赋值时不带参数(如:noParam: this.specificNoParam),则此属性的类型需定义为无返回值的函数(如:@BuilderParam noParam: () => void);若带参数(如:withParam: this.SpecificWithParam('WithParamA')),则此属性的类型需定义成any(如:@BuilderParam withParam: any)。
// Test_BuilderParam8+.ets
@Component
struct CustomContainer {header: string = ''@BuilderParam noParam: () => void@BuilderParam withParam: anyfooter: string = ''build() {Column() {Text(this.header).fontSize(30)this.noParam()this.withParam()Text(this.footer).fontSize(30)}}
}@Entry
@Component
struct CustomContainerUser {@Builder specificNoParam() {Column() {Text('noParam').fontSize(30)}}@Builder SpecificWithParam(label: string) {Column() {Text(label).fontSize(30)}}build() {Column() {CustomContainer({header: 'HeaderA',noParam: this.specificNoParam,withParam: this.SpecificWithParam('WithParamA'),footer: 'FooterA'})Divider().strokeWidth(3).margin(10)CustomContainer({header: 'HeaderB',noParam: this.specificNoParam,withParam: this.SpecificWithParam('WithParamB'),footer: 'FooterB'})}}
}
2.3 -> 尾随闭包初始化组件
在自定义组件中使用@BuilderParam修饰的属性时也可通过尾随闭包进行初始化(在初始化自定义组件时,组件后紧跟一个大括号“{}”形成尾随闭包场景(CustomContainer(){})。开发者可把尾随闭包看做一个容器,向其中填充内容,如在闭包内增加组件({Column(){...}),闭包内语法规范与build函数一致。此场景下自定义组件内有且仅有一个使用@BuilderParam修饰的属性。
示例:在闭包内添加Column组件并设置点击事件,在Column组件内调用@Builder修饰的specificParam函数,点击Column组件后将自定义组件CustomContainer中header的属性值由“header”改变为“changeHeader”。在初始化自定义组件CustomContainer时,尾随闭包的内容会被赋值给@BuilderParam修饰的closer属性。
// Test_BuilderParam8+.ets
@Component
struct CustomContainer {header: string = ''@BuilderParam closer: () => voidbuild() {Column() {Text(this.header).fontSize(30)this.closer()}}
}@Builder function specificParam(label1: string, label2: string) {Column() {Text(label1).fontSize(30)Text(label2).fontSize(30)}
}@Entry
@Component
struct CustomContainerUser {@State text: string = 'header'build() {Column() {CustomContainer({header: this.text,}) {Column() {specificParam('testA', 'testB')}.backgroundColor(Color.Yellow).onClick(() => {this.text = 'changeHeader'})}}}
}
3 -> @Styles
ArkTS为了避免开发者对重复样式的设置,通过@Styles装饰器可以将多个样式设置提炼成一个方法,直接在组件声明时调用,通过@Styles装饰器可以快速定义并复用自定义样式。当前@Styles仅支持通用属性。
@Styles可以定义在组件内或组件外,在组件外定义时需在方法名前面添加function关键字,组件内定义时则不需要添加function关键字。
// Test_Styles.ets
@Styles function globalFancy () {.width(150).height(100).backgroundColor(Color.Pink)
}@Entry
@Component
struct FancyUse {@Styles componentFancy() {.width(100).height(200).backgroundColor(Color.Yellow)}build() {Column({ space: 10 }) {Text('FancyA').globalFancy().fontSize(30)Text('FancyB').globalFancy().fontSize(20)Text('FancyC').componentFancy().fontSize(30)Text('FancyD').componentFancy().fontSize(20)}}
}
@Styles还可以在StateStyles属性内部使用,在组件处于不同的状态时赋予相应的属性。
在StateStyles内可以直接调用组件外定义的@Styles方法,但需要通过this关键字调用组件内定义的@Styles方法。
// Test_Styles.ets
@Styles function globalFancy () {.width(120).height(120).backgroundColor(Color.Green)
}@Entry
@Component
struct FancyUse {@Styles componentFancy() {.width(80).height(80).backgroundColor(Color.Red)}build() {Row({ space: 10 }) {Button('Fancy').stateStyles({normal: {.width(100).height(100).backgroundColor(Color.Blue)},disabled: this.componentFancy,pressed: globalFancy})}}
}
4 -> @Extend
@Extend装饰器将新的属性方法添加到Text、Column、Button等内置组件上,通过@Extend装饰器可以快速地扩展原生组件。
// Test_Extend.ets
@Extend(Text) function fancy (fontSize: number) {.fontColor(Color.Red).fontSize(fontSize).fontStyle(FontStyle.Italic).fontWeight(600)
}@Entry
@Component
struct FancyUse {build() {Row({ space: 10 }) {Text("Fancy").fancy(16)Text("Fancy").fancy(24)Text("Fancy").fancy(32)}}
}
说明
- @Extend装饰器不能定义在自定义组件struct内。
- @Extend装饰器内仅支持属性方法设置。
5 -> @CustomDialog
@CustomDialog装饰器用于装饰自定义弹窗组件,使得弹窗可以动态设置内容及样式。
// Test_CustomDialog.ets
@CustomDialog
struct DialogExample {controller: CustomDialogControlleraction: () => voidbuild() {Row() {Button('Close CustomDialog').onClick(() => {this.controller.close()this.action()})}.padding(20)}
}@Entry
@Component
struct CustomDialogUser {dialogController: CustomDialogController = new CustomDialogController({builder: DialogExample({ action: this.onAccept }),cancel: this.existApp,autoCancel: true});onAccept() {console.info('onAccept');}existApp() {console.info('Cancel dialog!');}build() {Column() {Button('Click to open Dialog').onClick(() => {this.dialogController.open()})}}
}
感谢各位大佬支持!!!
互三啦!!!
相关文章:
【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素
目录 1 -> Builder 2 -> BuilderParam8 2.1 -> 引入动机 2.2 -> 参数初始化组件 2.3 -> 尾随闭包初始化组件 3 -> Styles 4 -> Extend 5 -> CustomDialog 1 -> Builder 可通过Builder装饰器进行描述,该装饰器可以修饰一个函数&…...
【漫话机器学习系列】028.CP
Mallows’ Cp:标准化公式解析与应用 Mallows’ Cp 是一种常用的模型选择工具,用于在一系列候选模型中权衡拟合度和复杂性,帮助我们选择性能最优的模型。本文将基于其标准化公式展开详细解析,并探讨其应用场景、实现方法、优点与局…...
【SpringBoot教程】搭建SpringBoot项目之编写pom.xml
🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 👏今天毛毛张分享的内容主要是Maven 中 pom 文件🆕,涵盖基本概念、标签属性、配置等内容 文章目录 1.前言🥭2.项目基本…...
送给一年编程道路的自己
回望过去一年在编程道路上的成长与收获,是一个很有意义的过程。总结自己这一年的编程经历,不仅可以帮助你更清晰地了解自己的进步和不足,还能为未来的发展指引方向。以下是一些可能的收获,供你参考: 1. 技能提升 语言…...
libvirt学习
文章目录 libvirt 简介节点、Hypervisor和域libvirt 安装和配置libvirt的XML配置文件libvirt APIMain libvirt APIsError handlingSpecial specific APIs 建立到Hypervisor的连接libvirt API使用编译libvirt工具virshvirt-clonevirt-dfvirt-imagevirt-installvirt-topvirt-what…...
第二十五天 项目实践:图像分类
项目实践:图像分类 一、数据集准备 在图像分类任务中,数据集的选择和准备是至关重要的。一个高质量的数据集可以显著提高模型的训练效果和泛化能力。 数据集选择 ImageNet:这是一个广泛应用于训练卷积神经网络(CNN)模…...
学技术学英文:Tomcat的线程模型调优
导读: tomcat 线程调优关键需要理解下面这几个参数: 1. maxConnections 描述:指定服务器能够同时接受和处理的最大连接数。也就是说,服务器在任何时候都能处理的最大并发连接数。作用:限制服务器在任何给定时间点能…...
软考高项(二十)高级项目管理 ★重点集萃★
👑 个人主页 👑 :😜😜😜Fish_Vast😜😜😜 🐝 个人格言 🐝 :🧐🧐🧐说到做到,言出必行&am…...
Android 系统 `android.app.Fragment` 类的深度定制与常见问题解析
Android 系统 android.app.Fragment 类的深度定制与常见问题解析 目录 引言Fragment 概述Fragment 的生命周期Fragment 的系统层深度定制 4.1 Fragment 的创建与初始化4.2 Fragment 的布局与视图4.3 Fragment 的通信机制4.4 Fragment 的动画与过渡4.5 Fragment 的状态保存与恢…...
[Qt] Qt介绍 | 搭建SDK
目录 1. Qt 简介 什么是 Qt? 1.1 引入 1.2 GUI 1.3 Qt 介绍 2. Qt 发展史 3. Qt 支持的平台 4. Qt 版本信息 5. Qt 的优点 6. Qt 应用场景 7. Qt 成功案例 8. Qt 发展前景及就业分析 二. Qt 开发环境搭建 1. 开发工具概述 2.Qt SDK 安装 3.使用 1. …...
工作中常用Vim的命令
Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】 目录 0. ctags -R 1.认识 Vim的几种工作模式 2.高频使用命令 2.1 修改文件 2.2 关于行号 2.3 删除多行,删除部分 2.4 复制粘贴 2.5 光标移动 2.…...
【广州计算机学会、广州互联网协会联合主办 | ACM独立出版 | 高录用】第四届大数据、信息与计算机网络国际学术会议(BDICN 2025)
第四届大数据、信息与计算机网络国际学术会议(BDICN 2025)定于2025年01月10-12日在中国广州举行。会议旨在为从事“大数据”、“计算机网络”与“信息”研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术,了解学术发…...
CSS系列(43)-- Anchor Positioning详解
前端技术探索系列:CSS Anchor Positioning详解 🎯 致读者:探索智能定位的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS Anchor Positioning,这个强大的元素定位特性。 基础概念 🚀 锚点设…...
测试带宽上行方法
测试宽带上行速度的软件有多种,以下是一些常见的选择: Speedtest 平台支持:iOS、Android、Windows、MacOS等 特点:全球知名的网络测速软件,测试结果准确,支持多平台。用户可以选择最近的服务器进行测试&am…...
pugixml XML配置文件 的增删改查
<?xml version"1.0" encoding"UTF-8"?> <SXConfiguration><LocalSetting><VMSLoginServer><exitServerName>2</exitServerName><server><name>2</name><ip>152.131.121.131</ip><…...
自动化办公-将 Excel 的 Sheet 页拆分成单独的 Excel 文件
在日常的数据处理工作中,很多时候我们会遇到一个包含多个工作表(Sheet)的 Excel 文件,可能需要将每个工作表分别保存为独立的 Excel 文件。手动进行这种操作非常繁琐且易出错,但借助 Python 中的 pandas 库,…...
安全漏洞合集
一,X-Content-Type-Options响应头降低XSS攻击的风险 在Nginx配置文件中,可以使用add_header指令来添加自定义的HTTP响应头。 (通常是nginx.conf或站点特定的配置文件)添加以下指令来设置X-Content-Type-Options响应头:…...
python 堆排序(Heap Sort)
堆排序(Heap Sort) 堆排序是一种基于二叉堆数据结构的排序算法。它的基本思想是:将待排序的数组构建成一个最大堆(或最小堆),然后依次将堆顶元素(最大值或最小值)与堆的最后一个元素…...
word中文献引用[]符号的上下标格式修改
word中文献引用[]符号的上下标格式修改 百度网址 1、查找打开使用通配符,输入[[][0-9]{1,2}[]],即可匹配所有的字[1],[12]这些字符,然后鼠标点击替换为的空白处,再点击特殊格式–>“字体”,选中上标,最…...
地心地固坐标系
地心地固坐标系(ECEF, Earth-Centered, Earth-Fixed) 是一种三维坐标系,常用于表示地球表面或地球内部的点的位置。它的特点是坐标系的原点位于地球的质心,并且坐标轴固定在地球表面,并随地球自转而旋转。 ECEF 坐标系…...
3.CSS字体属性
3.1字体系列 CSS使用font-family属性定义文本的字体系列。 p{font-family:"微软雅黑"} div{font-family:Arial,"Microsoft Yahei",微软雅黑} 3.2字体大小 css使用font-size属性定义字体大小 p{ font-size:20px; } px(像素)大小是我们网页的最常用的单…...
使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术
以下是一个使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术,并尝试满足你提出的各项需求: 1. 数据预处理 扩充输入数据维度 假设你的原始数据是二维的(例如图像或序列数据),可以通过一些变换来扩充维度。例如,对于图像数据,可以进行翻转、旋转、缩放…...
[Wi-Fi]802.11u Vs hotspot2.0
介绍 802.11u 和 Hotspot 2.0 是两个相关但不同的技术标准,它们都旨在改善无线网络的用户体验,特别是在公共 Wi-Fi 环境中。 802.11u 定义:802.11u 是 IEEE 802.11 标准的一个扩展,专注于增强无线网络的互操作性和用户体验。功能…...
VisualStudio 2019 升级遇到的问题及解决
事件起因 今天计划想研究下.net core(后面版本直接称为 .net ),发现 .net sdk 5.0 最新版本安装不成功。解决之后,真是手欠,看着Visual Studio 2019 有更新了,就直接点击了,这时才发现问题大了。。。 安装…...
Java - 日志体系_Simple Logging Facade for Java (SLF4J)日志门面_SLF4J集成logback 及 原理分析
文章目录 Pre官网集成步骤POM依赖使用第一步:编写 Logback 的配置文件第二步:在代码中使用 SLF4J 原理分析1. 获取对应的 ILoggerFactory2. 根据 ILoggerFactory 获取 Logger 实例3. 日志记录过程 小结 Pre Java - 日志体系_Apache Commons Logging&…...
机器学习-方案设计题(在线医疗诊断项目)
在一个在线医疗诊断项目中,我们希望利用机器学习算法来预测患者是否患有某种疾病。请设计一个方案,包括数据收集、预处理、特征选择、模型选择和评估等步骤来完成这个任务。 1.数据收集数据来源 电子病历系统:收集患者的基本信息&…...
基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解
目录 1、三种方式介绍 1.1请求限流 1.2 线程隔离方案 1.3 服务熔断 2、基于sentinel实现 2.1 启动sentinel 2.2 基于springboot整合sentinel 2.2.1请求限流 2.2.2请求隔离 2.2.2.1 OpenFeign整合Sentinel 2.2.3 服务熔断 2.2.3.1 编写降级代码 2.2.3.2 服务熔断 1、…...
[开源]C++代码分享
一,声明 被人水平有限,开源只是为了分享。勿喷!!!还请大佬指点。 二,代码 // --------------------------------------------------------- 头文件 ----------------------------------------------- #in…...
vulnhub ica1
搭建靶机跟之前一样 不过这个要修改一下网卡;下面链接有教程 vulnhub jangow靶机-CSDN博客 1.扫描靶机IP arp-scan -l 192.168.47.135 2.信息收集 nmap -sS 192.168.47.135 访问网站 这个是一个web应用,框架是qdpm 9.2 在kali上搜索一下发现有两个漏洞&#x…...
Linux(Centos 7.6)基础命令/常用命令说明
1.目录相关命令 命令命令说明pwd用于显示/打印当前目录位置。ls/ll 列出当前目录下的文件或者目录,ll是ls -l的别名,ls仅显示名称,ll会显示详细的目录文件信息。 cd目录切换,常见用法有,cd /切换到根目录,…...
Solon 加入 GitCode:助力国产 Java 应用开发新飞跃
在当今数字化快速发展的时代,Java 应用开发框架不断演进,开发者们始终在寻找更快、更小、更简单的解决方案。近期,Solon 正式加入 GitCode,为广大 Java 开发者带来全新的开发体验,尤其是在国产应用开发进程中ÿ…...
Browser Use:AI智能体自动化操作浏览器的开源工具
Browser Use:AI智能体自动化操作浏览器的开源工具 Browser Use 简介1. 安装所需依赖2. 生成openai密钥3. 编写代码4. 运行代码5. 部署与优化5.1 部署AI代理5.2 优化与扩展总结Browser Use 简介 browser-use是一个Python库,它能够帮助我们将AI代理与浏览器自动化操作结合起来;…...
ArcGIS中怎么进行水文分析?(思路介绍)
最近有人咨询,ArcGIS中怎么进行水文分析,大致的说一下河网提取的思路哈 解决思路:dem填洼→计算水流方向→计算水流累积矩阵→形成河网 dem填洼 计算水流方向 计算水流累积矩阵 用栅格计算器,设阈值(自己多次尝试&…...
2024年中国新能源汽车用车发展怎么样 PaperGPT(一)
概述 在国家政策的强力扶持下,2024年中国新能源汽车市场迎来了新的发展机遇。本文将基于《中国新能源汽车用车报告(2024年)》的数据,对新能源汽车的市场发展和用车趋势概述。 新能源汽车市场发展 政策推动:国家和地…...
KubeOS
title: 探秘 KubeOS:云原生操作系统的创新先锋 date: ‘2024-12-31’ category: blog tags: KubeOS云原生操作系统容器编排 sig: CloudNative archives: ‘2024-12’ author:way_back summary: KubeOS 作为一款专为云原生应用打造的操作系统,深度集成了…...
html文件通过script标签引入外部js文件,但没正确加载的原因
移动端H5应用,html文件通过script标签引入外部js文件,但没正确加载,在移动设备上难以排查。通过PC浏览器打开,发现js被阻止了:blocked:mixed-content。 原因在于: “blocked:mixed - content” 是浏览器的…...
[创业之路-225]:《华为闭环战略管理》-4-华为的商业智慧:在价值链中探索取舍之道与企业边界
目录 一、在价值链中探索取舍之道与企业边界 价值链的深刻洞察 取舍之道:有所为,有所不为 垂直整合与横向整合的平衡 企业边界与活动边界的界定 采购与外包的智慧运用 结语 二、企业外部价值流:上游、中游、下游、终端 上游…...
让 Agent 具备语音交互能力:技术突破与应用前景(16/30)
让 Agent 具备语音交互能力:技术突破与应用前景 一、引言 在当今数字化时代,人机交互方式正经历着深刻的变革。从早期的命令行界面到图形用户界面,再到如今日益普及的语音交互,人们对于与机器沟通的便捷性和自然性有了更高的追求…...
代理IP助力VR行业革新,小派科技引领技术潮流
随着VR行业的新一轮技术升级,更高分辨率、更宽视场角以及更舒适的佩戴体验已成为各大厂商竞争的核心。在这一浪潮中,小派科技凭借其最新发布的视网膜级VR头显——Crystal Super,成功吸引了市场的目光。而在这场技术革新的背后,代理…...
C#Halcon图像处理畸变校正之曲面校正
图像校正场景一般有两种,其一由镜头本身或安装角度引起,其二是被拍摄物品本身引起 理论处理流程 我的处理处理流程 1,加载网格校正图像 2,确定符合条件的网格区域 3,显示网格鞍点 4,显示网格线 5ÿ…...
JSON结构快捷转XML结构API集成指南
JSON结构快捷转XML结构API集成指南 引言 在当今的软件开发世界中,数据交换格式的选择对于系统的互操作性和效率至关重要。JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据表…...
Coroutine 基础四 —— CoroutineScope 与 CoroutineContext
1、定位 CoroutineContext,协程上下文。协程用到的所有信息都属于协程上下文,根据功能不同,划分成了不同的分类。管理流程用的是 Job,管理线程用的是 ContinuationInterceptor,等等。 CoroutineScope 的定位有两点&a…...
科技云报到:洞见2025年科技潮流,技术大融合开启“智算时代”
科技云报到原创。 随着2024年逐渐接近尾声,人们不禁开始展望即将到来的2025年。这一年,被众多科技界人士视为开启新纪元的关键节点。站在新的起点上,我们将亲眼目睹未来科技如何改变我们的世界。从人工智能到量子计算,从基因编辑…...
MySQL有哪些锁?
1.MySQL有哪些锁? 全局锁表级锁 表锁元数据锁意向锁 行级锁 记录锁间隙锁临键锁临时意向锁 我了解的是MySQL的锁可以分为全局锁、表级锁、行级锁。 我比较熟悉的是表级锁和行级锁,如果我们对表结构进行修改时,MySQL就会对这个表结构加一个…...
通过交叉实现数据触底分页效果new IntersectionObserver()(html、react、vue2、vue3)中使用
react中用法 import React, { useState, useEffect, useRef } from react;const InfiniteScroll () > {const [items, setItems] useState([]);const [loading, setLoading] useState(false);const [page, setPage] useState(1);const loaderRef useRef(null);// 模拟…...
DeepSeek-V3-Base 模型技术解析
DeepSeek-V3-Base 模型技术解析 目录 引言DeepSeek-V3-Base 模型概述模型架构 3.1 Transformer 基础3.2 DeepSeek-V3-Base 的改进 训练过程 4.1 数据预处理4.2 训练策略4.3 优化器与学习率调度 模型性能评估 5.1 基准测试5.2 实际应用案例 模型优化与调参 6.1 超参数调优6.2 …...
Qt5 中 QGroupBox 标题下沉问题解决
我们设置了QGroupBox 样式之后,发现标题下沉了,那么如何解决呢? QGroupBox {font: 12pt "微软雅黑";color:white;border:1px solid white;border-radius:6px; } 解决后的效果 下面是解决方法: QGroupBox {font: 12pt "微软雅黑";color:white;bo…...
Linux Debian安装ClamAV和命令行扫描病毒方法,以及用Linux Shell编写了一个批量扫描病毒的脚本
ClamAV是一个开源的跨平台病毒扫描引擎,用于检测恶意软件、病毒、木马等安全威胁。 一、Linux Debian安装ClamAV 在Linux Debian系统上安装ClamAV,你可以按照以下步骤进行: 更新软件包列表: 打开终端并更新你的软件包列表&#…...
数据结构与算法之动态规划: LeetCode 53. 最大子数组和 (Ts版)
最大子数组和 https://leetcode.cn/problems/maximum-subarray/description/ 描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和子数组是数组中的一个连续部分 示例 1 …...
活动预告 | Microsoft Azure 在线技术公开课:使用 Azure OpenAI 服务构建生成式应用
课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“使用 Azure OpenAI 服务构建生成式应用”活动,了解如何使用包括 GPT 在内的强大的…...