利用MATLAB appdesigner设计简易红绿灯

四个信号灯分别代表四个方向,信号灯下面显示框对应剩余的秒数,time为绿灯持续时间,下拉框对应哪两边的灯最先亮起。

函数如下,两个color函数对应两种状态

methods (Access = private)
        
        function results = func(app,value)
            set(app.upEditField,'Value',value);
            
            set(app.downEditField,'Value',value);
            
            set(app.leftEditField,'Value',value);
            
            set(app.rightEditField,'Value',value);
            
        end
        
        function results = color1(app)
            app.upLamp.Color='g';
            app.downLamp.Color='g';
            app.leftLamp.Color='r';
            app.rightLamp.Color='r';
        end
        
        function results = color2(app)
            app.upLamp.Color='r';
            app.downLamp.Color='r';
            app.leftLamp.Color='g';
            app.rightLamp.Color='g';
        end
    end

按钮回调函数如下

        function ButtonPushed(app, event)
            value=app.timeEditField.Value;
            if value<=0
                uialert(app.UIFigure,"请输入大于0的数","error")
                pause%等待用户任意键继续
            end
            func(app,value);
            if app.DropDown.Value=="up_down"
                %这里必须是双引号,不然会显示矩阵维度不一致
                b=0;
                color1(app);
            else
                b=1;
                color2(app);
            end
            a=value;
            while true
                pause(1)
                a=a-1;
                func(app,a);
                if a<=0
                    a=value;
                    func(app,value);
                    if mod(b,2)==0
                        color2(app);
                    else
                        color1(app);
                    end
                    b=b+1;
                end
            end
        end

uilabel后如果没有pause,程序就会一直执行下去。

用下拉框的value时,要有双引号

因为红绿灯显示整数,因此每过1秒显示一次即可,不用一直监测目前的时间,可以暂停1秒。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bhZ567

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值