1. 与门/或门逻辑交互

场景:演示基本逻辑门的真值表,输入开关控制输出灯亮灭。
核心逻辑:利用状态变量模拟输入电平,通过颜色变化直观展示逻辑结果。

@Entry
@Component
struct LogicGateDemo {
  @State inputA: boolean = false
  @State inputB: boolean = false

  build() {
    Column({ space: 30 }) {
      Text('基本逻辑门演示').fontSize(24).fontWeight(FontWeight.Bold)

      // 输入控制区
      Row({ space: 50 }) {
        Column() {
          Text('Input A')
          Toggle({ type: ToggleType.Switch, isOn: this.inputA })
            .onChange((isOn) => { this.inputA = isOn })
            .selectedColor(Color.Green)
        }
        Column() {
          Text('Input B')
          Toggle({ type: ToggleType.Switch, isOn: this.inputB })
            .onChange((isOn) => { this.inputB = isOn })
            .selectedColor(Color.Green)
        }
      }

      // 符号与输出
      Row({ space: 20 }) {
        // 输入线
        Line().width(40).height(2).backgroundColor(this.inputA ? Color.Green : Color.Gray)
        Line().width(40).height(2).backgroundColor(this.inputB ? Color.Green : Color.Gray)

        // 逻辑门符号 (矩形代表AND)
        Text('AND')
          .width(50)
          .height(50)
          .borderWidth(2)
          .textAlign(TextAlign.Center)
          .borderRadius(5)

        // 输出线
        Line().width(40).height(2).backgroundColor((this.inputA && this.inputB) ? Color.Green : Color.Gray)

        // 输出灯
        Circle()
          .width(30)
          .height(30)
          .fill((this.inputA && this.inputB) ? Color.Yellow : Color.Black)
      }
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐