基础ArkTS组件:二维码,滚动条与滑动条,多选框与多选框群组(HarmonyOS学习第三课【3.4】)

ops/2024/9/19 9:53:32/ 标签: 学习, 华为, harmonyos, typescript

二维码组件

QRCode

子组件

接口

QRCode(value: string)

参数:

参数名

参数类型

必填

参数描述

value

string

二维码内容字符串。最大支持256个字符,若超出,则截取前256个字符。

说明:

该字符串内容确保有效,不支持null、undefined以及空内容。

属性

除支持通用属性外,还支持以下属性。

名称

参数类型

描述

color

ResourceColor

设置二维码颜色。

默认值:Color.Black

从API version 9开始,该接口支持在ArkTS卡片中使用。

backgroundColor

ResourceColor

设置二维码背景颜色。

默认值:Color.White

从API version 9开始,该接口支持在ArkTS卡片中使用。

事件

通用事件支持点击事件、触摸事件、挂载卸载事件。

QRCode定义介绍

interface QRCodeInterface {(value: string): QRCodeAttribute;
}
  • value:设置将要生成二维码的内容。

简单样例如下所示:

QRCode('Hello, OpenHarmony').width(70).height(70)

运行结果如下图所示:

官方简单案例:

// xxx.ets
@Entry
@Component
struct QRCodeExample {private value: string = 'hello world'build() {Column({ space: 5 }) {Text('normal').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)QRCode(this.value).width(200).height(200)// 设置二维码颜色Text('color').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)QRCode(this.value).color(0xF7CE00).width(200).height(200)// 设置二维码背景色Text('backgroundColor').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)QRCode(this.value).width(200).height(200).backgroundColor(Color.Orange)}.width('100%').margin({ top: 5 })}
}

滚动条组件

滚动条组件ScrollBar,用于配合可滚动组件使用,如List、Grid、Scroll。

子组件

可以包含单个子组件。

接口

ScrollBar(value: { scroller: Scroller, direction?: ScrollBarDirection, state?: BarState })

参数:

参数名

参数类型

必填

参数描述

scroller

Scroller

可滚动组件的控制器。用于与可滚动组件进行绑定。

direction

ScrollBarDirection

滚动条的方向,控制可滚动组件对应方向的滚动。

默认值:ScrollBarDirection.Vertical

state

BarState

滚动条状态。

默认值:BarState.Auto

说明

ScrollBar组件负责定义可滚动区域的行为样式,ScrollBar的子节点负责定义滚动条的行为样式。

滚动条组件与可滚动组件通过Scroller进行绑定,且只有当两者方向相同时,才能联动,ScrollBar与可滚动组件仅支持一对一绑定。

ScrollBarDirection枚举说明

名称

描述

Vertical

纵向滚动条。

Horizontal

横向滚动条。

Scroller简单介绍

Scroller 作为滚动容器组件的控制器,它提供了滚动子组件的各种能力,比如设置子组件滚动指定位置、滚动到底部以及滚动到下一页上一页等能力。目前 Scrolller 只支持绑定到 Scroll 和 List 上。

Scroller 定义如下:

export declare class Scroller {scrollTo(value: {xOffset: number | string, yOffset: number | string, animation?: { duration: number, curve: Curve }});scrollEdge(value: Edge);scrollPage(value: { next: boolean, direction?: Axis });currentOffset();scrollToIndex(value: number);
}
  • scrollTo:设置子组件滚动到指定位置,在滚动的时候还可以根据 animation 参数设置动画。
  • scrollEdge:滚动到边界, Edge 提供了多种类型,读者可自行查阅。
  • scrollPage:滚动到上一页或者下一页。
  • currentOffset:获取当前滚动的偏移量。
  • scrollToIndex:滚动到指定下标,目前只支持 List
// xxx.ets
@Entry
@Component
struct ScrollBarExample {private scroller: Scroller = new Scroller()private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]build() {Column() {Stack({ alignContent: Alignment.End }) {Scroll(this.scroller) {Flex({ direction: FlexDirection.Column }) {ForEach(this.arr, (item) => {Row() {Text(item.toString()).width('80%').height(60).backgroundColor('#3366CC').borderRadius(15).fontSize(16).textAlign(TextAlign.Center).margin({ top: 5 })}}, item => item)}.margin({ right: 15 })}.width('90%').scrollBar(BarState.Off).scrollable(ScrollDirection.Vertical)ScrollBar({ scroller: this.scroller, direction: ScrollBarDirection.Vertical,state: BarState.Auto }) {Text().width(20).height(100).borderRadius(10).backgroundColor('#C0C0C0')}.width(20).backgroundColor('#ededed')}}}
}

滑动条组件

项目开发中可能会有设置设备音量大小,调节屏幕亮度等需求,实现类似需求一般都会使用到滑动条,ArkUI开发框架提供了滑动组件 Slider 

滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。

说明

该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

接口

Slider(options?: {value?: number, min?: number, max?: number, step?: number, style?: SliderStyle, direction?: Axis, reverse?: boolean})

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数:

参数名

参数类型

必填

参数描述

value

number

当前进度值。

默认值:参数min

min

number

设置最小值。

默认值:0

max

number

设置最大值。

默认值:100

说明:

min >= max异常情况,min取默认值0,max取默认值100。

value不在[min, max]范围之内,取min/max,靠近min取min,靠近max取max。

step

number

设置Slider滑动步长。

默认值:1

取值范围:[0.01, max]

说明:

设置小于0或百分比的值时,按默认值显示。

style

SliderStyle

设置Slider的滑块与滑轨显示样式。

默认值:SliderStyle.OutSet

direction8+

Axis

设置滑动条滑动方向为水平或竖直方向。

默认值:Axis.Horizontal

reverse8+

boolean

设置滑动条取值范围是否反向,横向Slider默认为从左往右滑动,竖向Slider默认为从上往下滑动。

默认值:false

SliderStyle枚举说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称

描述

OutSet

滑块在滑轨上。

InSet

滑块在滑轨内。

属性

支持除触摸热区以外的通用属性设置。

名称

参数类型

描述

blockColor

ResourceColor

设置滑块的颜色。

从API version 9开始,该接口支持在ArkTS卡片中使用。

trackColor

ResourceColor

设置滑轨的背景颜色。

从API version 9开始,该接口支持在ArkTS卡片中使用。

selectedColor

ResourceColor

设置滑轨的已滑动部分颜色。

从API version 9开始,该接口支持在ArkTS卡片中使用。

showSteps

boolean

设置当前是否显示步长刻度值。

默认值:false

从API version 9开始,该接口支持在ArkTS卡片中使用。

showTips

boolean

设置滑动时是否显示百分比气泡提示。

默认值:false

从API version 9开始,该接口支持在ArkTS卡片中使用。

说明:

当direction的属性值为Axis.Horizontal时,tip显示在滑块正上方。值为Axis.Vertical时,tip显示在滑块正左边。

tip的绘制区域为Slider自身节点的overlay。

Slider不设置边距,或者边距比较小时,tip会被截断。

trackThickness

Length

设置滑轨的粗细。

默认值:当参数style的值设置SliderStyle.OutSet 时为 4.0vp,SliderStyle.InSet时为20.0vp。

从APIversion9开始,该接口支持在ArkTS卡片中使用。

说明:

设置为小于0的值时,按默认值显示。

事件

通用事件仅支持挂载卸载事件:OnAppear,OnDisAppear。

名称

功能描述

onChange(callback: (value: number, mode: SliderChangeMode) => void)

Slider滑动时触发事件回调。

value:当前滑动进度值。若返回值有小数,可使用number.toFixed()方法将数据处理为预期的精度。

mode:拖动状态。

从API version 9开始,该接口支持在ArkTS卡片中使用。

说明:Begin和End状态当手势点击时都会触发,Moving和Click状态当value值发生变换时触发。

当连贯动作为拖动动作时,不触发Click状态。

value值的变化范围为对应步长steps数组。

SliderChangeMode枚举说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称

描述

Begin

0

手势/鼠标接触或者按下滑块。

Moving

1

正在拖动滑块过程中。

End

2

手势/鼠标离开滑块。

Click

3

点击滑动条使滑块位置移动。

Slider定义介绍

interface SliderInterface {(options?: SliderOptions): SliderAttribute;
}// 配置参数
declare interface SliderOptions {value?: number;min?: number;max?: number;step?: number;style?: SliderStyle;direction?: Axis;reverse?: boolean;
}
  • optionsSlider 接收一个 SliderOptions 类型的可选参数 options ,SliderOptions 参数说明如下:
    • value:滑动条当前进度值。
    • min:设置滑动条设置最小值。
    • max:设置滑动条设置最大值,默认为 100 。
    • step:设置滑动条滑动跳动值,当设置相应的 step 时,Slider为间歇滑动。
    • style:设置滑动条的滑块样式。
    • direction:设置滑动条滑动方向为水平或竖直方向。
    • reverse:设置滑动条取值范围是否反向。

简单样例如下所示:

@Entry @Component struct Index {build() {Column({space: 10}) {Slider({value: 20,min: 0,max: 100,step: 1,style: SliderStyle.InSet,direction: Axis.Horizontal,reverse: false}).width(260).height(60).backgroundColor(Color.Green)Slider({value: 20,min: 0,max: 100,step: 10,style: SliderStyle.OutSet,direction: Axis.Horizontal,reverse: false}).width(260).height(60).backgroundColor(Color.Green)}.padding(10).size({ width: "100%", height: '100%' })}
}

 

Slider属性介绍

declare class SliderAttribute extends CommonMethod<SliderAttribute> {blockColor(value: ResourceColor): SliderAttribute;trackColor(value: ResourceColor): SliderAttribute;selectedColor(value: ResourceColor): SliderAttribute;minLabel(value: string): SliderAttribute;maxLabel(value: string): SliderAttribute;showSteps(value: boolean): SliderAttribute;showTips(value: boolean): SliderAttribute;trackThickness(value: Length): SliderAttribute;
}
  • blockColor:设置滑块的颜色。

  • trackColor:设置滑轨的背景颜色。

  • selectedColor:设置滑轨的已滑动颜色。

    简单样例代码如下所示:

    Slider({value: 20,min: 0,max: 100,step: 1,style: SliderStyle.OutSet,direction: Axis.Horizontal,reverse: false
    })
    .width(260)
    .height(40)
    .backgroundColor("#ccc")Slider({value: 20,min: 0,max: 100,step: 10,style: SliderStyle.OutSet,direction: Axis.Horizontal,reverse: false
    })
    .width(260)
    .height(40)
    .backgroundColor("#aabbcc")
    .blockColor(Color.Green)    // 设置滑块颜色
    .trackColor(Color.Blue)   // 设置滑轨颜色
    .selectedColor(Color.Yellow) // 设置滑轨的已滑动颜色
    

    样例运行结果如下图所示:

  • minLabel:设置滑动条最小值处的标签。

  • maxLabel:设置滑动条最大值处的标签。

简单样例如下所示:

Slider({value: 20,min: 0,max: 100,step: 1,style: SliderStyle.OutSet,direction: Axis.Horizontal,reverse: false
})
.width(260)
.height(40)
.backgroundColor("#ccc")Slider({value: 20,min: 0,max: 100,step: 10,style: SliderStyle.OutSet,direction: Axis.Horizontal,reverse: false
})
.width(260)
.height(40)
.backgroundColor("#aabbcc")
.blockColor(Color.Yellow)    // 设置滑块颜色
.trackColor(Color.Pink)   // 设置滑轨颜色
.selectedColor(Color.Green) // 设置滑轨的已滑动颜色
//.minLabel("最小值")        // 设置最小值标签
//.maxLabel("最大值")        // 设置最大值标签

样例运行结果如下图所示:

  • showSteps:设置当前是否显示步长刻度值。

  • showTips:设置滑动时是否显示气泡提示百分比。

  • trackThickness:设置滑动条粗细

@Entry @Component struct Index {build() {Column({ space: 10 }) {Slider({value: 20,min: 0,max: 100,step: 1,style: SliderStyle.OutSet,direction: Axis.Horizontal,reverse: false}).width(260).height(40).backgroundColor("#ccc")Slider({value: 20,min: 0,max: 0,step: 10,style: SliderStyle.OutSet,direction: Axis.Horizontal,reverse: false}).width(260).height(40).backgroundColor("#aabbcc").blockColor(Color.Yellow)    // 设置滑块颜色.trackColor(Color.Pink)   // 设置滑轨颜色.selectedColor(Color.Green) // 设置滑轨的已滑动颜色// .minLabel("最小值")        // 设置最小值标签// .maxLabel("最大值")        // 设置最大值标签.showSteps(true)          // 设置显示步长.showTips(true)           // 设置显示进度.trackThickness(5)        // 设置滚动条宽度}}}

简单样例如下所示:

Slider事件介绍

declare class SliderAttribute extends CommonMethod<SliderAttribute> {onChange(callback: (value: number, mode: SliderChangeMode) => void): SliderAttribute;
}
  • onChange:滑动条滑动时触发事件回调,value 表示当前进度值;mode 表示滑动条的拖动状态,SliderChangeMode 定义了以下 3 种类型:
    • Begin:用户开始拖动滑块。
    • Moving:用户拖动滑块中。
    • End:用户结束拖动滑块。

完整案例

@Entry
@Component
struct SliderTest {@State outSetValue: number = 40@State inSetValue: number = 40@State outVerticalSetValue: number = 40@State inVerticalSetValue: number = 40build() {Column({ space: 10 }) {Row() {Slider({value: this.outSetValue,min: 0,max: 100,step: 1,style: SliderStyle.OutSet}).blockColor(Color.Green).selectedColor(Color.Gray).trackColor(Color.Brown).showSteps(true).showTips(true).trackThickness(4).onChange((value: number, mode: SliderChangeMode) => {this.outSetValue = value})Text(this.outSetValue.toFixed(0)).fontSize(16)}.padding({ top: 50 }).width('80%')Row() {Slider({value: this.inSetValue,min: 0,max: 100,step: 1,style: SliderStyle.InSet}).blockColor(0xCCCCCC).trackColor(Color.Black).trackThickness(10).selectedColor(0xCCCCCC).showSteps(false).showTips(false).onChange((value: number, mode: SliderChangeMode) => {this.inSetValue = value})Text(this.inSetValue.toFixed(0)).fontSize(16)}.width('80%')Row() {Column() {Slider({value: this.outVerticalSetValue,min: 0,max: 80,step: 1,style: SliderStyle.OutSet,direction: Axis.Vertical}).blockColor(Color.Blue).trackColor(Color.Gray).selectedColor(Color.Blue).trackThickness(5).showSteps(true).showTips(true).onChange((value: number, mode: SliderChangeMode) => {this.outVerticalSetValue = value})Text(this.outVerticalSetValue.toFixed(0)).fontSize(16)}.width('50%').height(300)Column() {Slider({value: this.inVerticalSetValue,min: 0,max: 90,step: 1,style: SliderStyle.InSet,direction: Axis.Vertical}).blockColor(Color.Yellow).trackColor(Color.Red).selectedColor(Color.Green).showSteps(false).showTips(false).trackThickness(10).onChange((value: number, mode: SliderChangeMode) => {this.inVerticalSetValue = value})Text(this.inVerticalSetValue.toFixed(0)).fontSize(16)}.width('50%').height(300)}}.width('100%').margin({ top: 5 })}
}

官方案例:

// xxx.ets
@Entry
@Component
struct SliderExample {@State outSetValueOne: number = 40@State inSetValueOne: number = 40@State outSetValueTwo: number = 40@State inSetValueTwo: number = 40@State vOutSetValueOne: number = 40@State vInSetValueOne: number = 40@State vOutSetValueTwo: number = 40@State vInSetValueTwo: number = 40build() {Column({ space: 8 }) {Text('outset slider').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(15)Row() {Slider({value: this.outSetValueOne,min: 0,max: 100,style: SliderStyle.OutSet}).showTips(true).onChange((value: number, mode: SliderChangeMode) => {this.outSetValueOne = valueconsole.info('value:' + value + 'mode:' + mode.toString())})// toFixed(0)将滑动条返回值处理为整数精度Text(this.outSetValueOne.toFixed(0)).fontSize(12)}.width('80%')Row() {Slider({value: this.outSetValueTwo,step: 10,style: SliderStyle.OutSet}).showSteps(true).onChange((value: number, mode: SliderChangeMode) => {this.outSetValueTwo = valueconsole.info('value:' + value + 'mode:' + mode.toString())})Text(this.outSetValueTwo.toFixed(0)).fontSize(12)}.width('80%')Text('inset slider').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(15)Row() {Slider({value: this.inSetValueOne,min: 0,max: 100,style: SliderStyle.InSet}).blockColor('#191970').trackColor('#ADD8E6').selectedColor('#4169E1').showTips(true).onChange((value: number, mode: SliderChangeMode) => {this.inSetValueOne = valueconsole.info('value:' + value + 'mode:' + mode.toString())})Text(this.inSetValueOne.toFixed(0)).fontSize(12)}.width('80%')Row() {Slider({value: this.inSetValueTwo,step: 10,style: SliderStyle.InSet}).blockColor('#191970').trackColor('#ADD8E6').selectedColor('#4169E1').showSteps(true).onChange((value: number, mode: SliderChangeMode) => {this.inSetValueTwo = valueconsole.info('value:' + value + 'mode:' + mode.toString())})Text(this.inSetValueTwo.toFixed(0)).fontSize(12)}.width('80%')Row() {Column() {Text('vertical outset slider').fontSize(9).fontColor(0xCCCCCC).width('50%').margin(15)Row() {Slider({value: this.vOutSetValueOne,style: SliderStyle.OutSet,direction: Axis.Vertical}).blockColor('#191970').trackColor('#ADD8E6').selectedColor('#4169E1').showTips(true).onChange((value: number, mode: SliderChangeMode) => {this.vOutSetValueOne = valueconsole.info('value:' + value + 'mode:' + mode.toString())})Slider({value: this.vOutSetValueTwo,step: 10,style: SliderStyle.OutSet,direction: Axis.Vertical}).blockColor('#191970').trackColor('#ADD8E6').selectedColor('#4169E1').showSteps(true).onChange((value: number, mode: SliderChangeMode) => {this.vOutSetValueTwo = valueconsole.info('value:' + value + 'mode:' + mode.toString())})}}.width('50%').height(300)Column() {Text('vertical inset slider').fontSize(9).fontColor(0xCCCCCC).width('50%').margin(15)Row() {Slider({value: this.vInSetValueOne,style: SliderStyle.InSet,direction: Axis.Vertical,reverse: true // 竖向的Slider默认是上端是min值,下端是max值,因此想要从下往上滑动,需要设置reverse为true}).showTips(true).onChange((value: number, mode: SliderChangeMode) => {this.vInSetValueOne = valueconsole.info('value:' + value + 'mode:' + mode.toString())})Slider({value: this.vInSetValueTwo,step: 10,style: SliderStyle.InSet,direction: Axis.Vertical,reverse: true}).showSteps(true).onChange((value: number, mode: SliderChangeMode) => {this.vInSetValueTwo = valueconsole.info('value:' + value + 'mode:' + mode.toString())})}}.width('50%').height(300)}}.width('100%')}
}

多选框组件

Checkbox

提供多选框组件,通常用于某选项的打开或关闭。

说明

该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

接口

Checkbox(options?: {name?: string, group?: string })

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数:

参数名

参数类型

必填

参数描述

name

string

多选框名称。

group

string

多选框的群组名称。

说明:

未配合使用CheckboxGroup组件时,此值无用。

属性

除支持通用属性外,还支持以下属性:

名称

参数类型

描述

select

boolean

设置多选框是否选中。

默认值:false

从API version 9开始,该接口支持在ArkTS卡片中使用。

selectedColor

ResourceColor

设置多选框选中状态颜色。

从API version 9开始,该接口支持在ArkTS卡片中使用。

事件

支持通用事件外,还支持以下事件:

名称

功能描述

onChange(callback: (value: boolean) => void)

当选中状态发生变化时,触发该回调。

- value为true时,表示已选中。

- value为false时,表示未选中。

从API version 9开始,该接口支持在ArkTS卡片中使用。

示例

// xxx.ets
@Entry
@Component
struct CheckboxExample {build() {Row() {Checkbox({name: 'checkbox1',  group: 'checkboxGroup'}).select(true).selectedColor(0xed6f21).onChange((value: boolean) => {console.info('Checkbox1 change is'+ value)})Checkbox({name: 'checkbox2',  group: 'checkboxGroup'}).select(false).selectedColor(0x39a2db).onChange((value: boolean) => {console.info('Checkbox2 change is'+ value)})}}
}

 多选框群组组件

CheckboxGroup

多选框群组,用于控制多选框全选或者不全选状态。

说明

该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

接口

CheckboxGroup(options?: { group?: string })

创建多选框群组,可以控制群组内的Checkbox全选或者不全选,group值相同的Checkbox和CheckboxGroup为同一群组。

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数:

参数名

参数类型

必填

参数描述

group

string

群组名称。

说明:

多个相同群组名称的CheckboxGroup,仅第一个CheckboxGroup生效。

属性

除支持通用属性外,还支持以下属性:

名称

参数类型

描述

selectAll

boolean

设置是否全选。

默认值:false,若同组的Checkbox显式设置select,则Checkbox的优先级高。

从API version 9开始,该接口支持在ArkTS卡片中使用。

selectedColor

ResourceColor

设置被选中或部分选中状态的颜色。

从API version 9开始,该接口支持在ArkTS卡片中使用。

事件

除支持通用事件外,还支持以下事件:

名称

功能描述

onChange (callback: (event: CheckboxGroupResult) => void )

CheckboxGroup的选中状态或群组内的Checkbox的选中状态发生变化时,触发回调。

从API version 9开始,该接口支持在ArkTS卡片中使用。

CheckboxGroupResult对象说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称

类型

描述

name

Array<string>

群组内所有被选中的多选框名称。

status

SelectStatus

选中状态。

SelectStatus枚举说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称

描述

All

群组多选择框全部选择。

Part

群组多选择框部分选择。

None

群组多选择框全部没有选择。

示例

// xxx.ets
@Entry
@Component
struct CheckboxExample {build() {Scroll() {Column() {// 全选按钮Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {CheckboxGroup({ group: 'checkboxGroup' }).selectedColor('#007DFF').onChange((itemName: CheckboxGroupResult) => {console.info("checkbox group content" + JSON.stringify(itemName))})Text('Select All').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)}// 选项1Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }).selectedColor('#007DFF').onChange((value: boolean) => {console.info('Checkbox1 change is' + value)})Text('Checkbox1').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)}.margin({ left: 36 })// 选项2Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {Checkbox({ name: 'checkbox2', group: 'checkboxGroup' }).selectedColor('#007DFF').onChange((value: boolean) => {console.info('Checkbox2 change is' + value)})Text('Checkbox2').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)}.margin({ left: 36 })// 选项3Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {Checkbox({ name: 'checkbox3', group: 'checkboxGroup' }).selectedColor('#007DFF').onChange((value: boolean) => {console.info('Checkbox3 change is' + value)})Text('Checkbox3').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)}.margin({ left: 36 })}}}
}


http://www.ppmy.cn/ops/40789.html

相关文章

一个基于servlet的MVC项目-登录验证

一、MVC的概念 MVC是Model、View、Controller的缩写&#xff0c;分别代表 Web 应用程序中的3种职责1 模型:用于存储数据以及处理用户请求的业务逻辑。 2视图:向控制器提交数据&#xff0c;显示模型中的数据。 3控制器:根据视图提出的请求&#xff0c;判断将请求和数据交给哪个…

测试项目实战——安享理财1(测试用例)

说明&#xff1a; 1.访问地址&#xff1a; 本项目实战使用的是传智播客的安享理财项目&#xff08;找了半天这个项目能免费用且能够满足测试实战需求&#xff09; 前台&#xff1a;http://121.43.169.97:8081/ 后台&#xff1a;http://121.43.169.97:8082/ &#xff08;点赞收藏…

Android 桌面小组件 AppWidgetProvider

Android 桌面小组件 AppWidgetProvider 简介 小组件就是可以添加到手机桌面的窗口。点击窗口可以进入应用或者进入应用的某一个页面。 widget 组件 如需创建 widget&#xff0c;您需要以下基本组件&#xff1a; AppWidgetProviderInfo 对象 描述 widget 的元数据&#xff0…

基于Python实现蔬菜水果识别

蔬菜水果识别在农业生产、食品加工和市场销售等领域具有重要意义。随着计算机视觉和机器学习技术的发展,利用图像识别技术实现蔬菜水果的自动化识别已成为可能。 目录 引言研究背景问题陈述研究目标文献综述蔬菜水果识别的相关研究概述基于计算机视觉和机器学习的图像识别方法…

数据库和Redis数据不一致的问题

目录 1. 延迟双删策略 2. 使用消息队列&#xff08;MQ&#xff09; 3. 引入分布式锁 4. 先更新数据库&#xff0c;再删除缓存 5. 设置缓存过期时间 6. 使用Redis事务 7. 监控和报警机制 数据库和Redis数据不一致的问题&#xff0c;主要源于Redis和数据库的异步写入机制。…

QT 客户端软件开发

QT 是一种功能强大且灵活的跨平台应用程序开发框架&#xff0c;但也存在一些技术难点&#xff0c;需要开发者仔细考虑和克服。以下是一些常见的 QT 软件开发的技术难点。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 跨平台兼容性…

Google Gemma 2B 微调实战(IT科技新闻标题生成)

本文我将使用 Google 的 Gemma-2b 模型来微调一个基于IT科技新闻正文来生成对应标题的模型。并且我将介绍如何使用高度集成的训练框架来进行快速微调。 开始前 为了尽可能简化整个流程,我将使用 linux-cn 数据集[1]作为本次训练任务的训练数据。 模型选择使用 Gemma-2b[2],…

点云从入门到精通技术详解100篇-基于车载 LiDAR 的雨雪天气点云滤波算法研究(续)

目录 2.2.2 衍生算法 2.2.2.1 DROR 2.2.2.2 DSOR 2.2.2.3 DDIOR 3算法改进及评价指标

调用move_base中的action

文章目录 功能介绍实现过程具体代码参考功能介绍 move_base 中的 action 是 ROS 中用于导航功能的一种实现方式,它利用 ROS 中的行为(action)通信机制来提供更灵活和强大的导航控制。 在 move_base 中,导航行为被建模为一个行为(action),该行为包含了导航过程中的目标…

kong 网关 docker 安装3.4

kong 安装 docker network create kong-net安装postgres 9.6 本版很重要 高版本 安装konga 初始化会有问题 docker run -d --name kong-database \--networkkong-net \-p 5432:5432 \-e "POSTGRES_USERkong" \-e "POSTGRES_DBkong" \-e "POSTGRES_P…

苹果电脑怎么安装crossover 如何在Mac系统中安装CrossOver CrossOver Mac软件安装说明

很多Mac的新用户在使用电脑的过程中&#xff0c;常常会遇到很多应用软件不兼容的情况。加上自己以前一直都是用Windows系统&#xff0c;总觉得Mac系统用得很难上手。 其实&#xff0c;用户可以在Mac上安装CrossOver&#xff0c;它支持用户在Mac上运行Windows软件&#xff0c;例…

基于 Llama-Index、Llama 3 和 Qdrant,构建一个 RAG 问答系统!

构建一个使用Llama-Index、Llama 3和Qdrant的高级重排-RAG系统 尽管大型语言模型&#xff08;LLMs&#xff09;有能力生成有意义且语法正确的文本&#xff0c;但它们面临的一个挑战是幻觉。 在LLMs中&#xff0c;幻觉指的是它们倾向于自信地生成错误答案&#xff0c;制造出看似…

JavaEE之线程(4)——线程安全、线程安全的原因,synchronized关键字

前言 在本栏的前面的内容中&#xff0c;我们介绍了线程的创建、Thread 类及常见方法、线程的状态&#xff0c;今天我们来介绍一下关于线程的另一个重点知识——线程安全。 一、线程安全 基本概念&#xff1a; 线程安全的确切定义是复杂的&#xff0c;但我们可以这样认为&…

springboot 注解(持续更新中)

RequestBody RequestBody将json格式的数据转为java对象&#xff08;字段名称要一致&#xff09; RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)&#xff1b;GET方式无请求体&#xff0c;所以使用RequestBody接收数据时&#xff0c;前端不能…

c++ 联编多态polymorphic

联编 1.什么是联编? C中的联编指的是把代码和数据指定到内存地址的过程。联编可以分为静态联编和动态联编。 静态联编&#xff1a; 静态联编是指在编译时就已经完成了所有连接工作。 所有全局函数和全局变量的地址在编译时已经确定。 在静态联编中&#xff0c;相同的名字…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (六)

LlaMA 3 系列博客 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四) 基于 LlaMA…

AI赋能EasyCVR视频汇聚/视频监控平台加快医院安防体系数字化转型升级

近来&#xff0c;云南镇雄一医院发生持刀伤人事件持续发酵&#xff0c;目前已造成2人死亡21人受伤。此类事件在医院层出不穷&#xff0c;有的是因为医患纠纷、有的是因为打架斗殴。而且在每日大量流动的人口中&#xff0c;一些不法分子也将罪恶的手伸到了医院&#xff0c;实行扒…

引入 Redis

简介 Jedis Jedis 是早期的 Redis 的 Java 实现客户端&#xff0c;提供了比较全面的 Redis 命令的支持&#xff0c;其官方网址是&#xff1a;http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html 优点&#xff1a;支持全面的 Redis 操作特性&#xff0…

STL库具体容器与用法

vector动态数组: 算法&#xff1a;for_each迭代器&#xff1a;vector<int>::iterator 头文件:<vector> 声明&#xff1a;vector<数据类型> 变量名 定义一个整形的vector容器&#xff1a;vector<int> v 迭代器&#xff1a;vector<数据类型>:…

vue3 第二十八节 (vue3 事件循环之JS事件循环)

1、什么是事件循环 事件循环就是消息队列&#xff0c;是浏览器渲染主线程的工作方式&#xff1b; 过去将消息队列&#xff0c;简单的分为宏任务 和微任务 两种队列&#xff0c;而对于现在复杂多变的浏览器环境&#xff0c;显然这种处理方式已经不能满足使用&#xff0c;取而代…