属性赋值 --------------------- **1. 控件属性、系统变量属性可以通过写脚本来读写。** **2. 属性分为可读可写和只读,只读属性在脚本中不能赋值,否则编译会报错。是否可写请查看属性的详细描述。** **3. 属性又分为数值变量和字符串变量两种,字符串变量只能赋值字符串类型的常量或变量,数值变量同理。** **<1>控件属性** .. image:: image/btn_attr.png :align: center :alt: btn_attr :name: 按钮控件属性 | - 脚本写法: * 有类名:[控件名].[类名].[属性名], 写法举例: ``b1.txt.str`` * 无类名:[控件名].[属性名] 写法举例: ``b1.x`` - 属性是否可写 * 参考属性描述 **<2>工程属性** .. image:: image/config_attr.png :align: center :alt: cinfig_attr | - 脚本写法: ``sys.dir`` ``sys.bl`` - 属性是否可写 * 参考属性描述 数值变量 ^^^^^^^^^^^^^^^^^^^^^ **支持的赋值符号:** ``= += -= *= /= %= ++自增 --自减`` :: // 正确写法 b1.x = 100; //正确,给控件属性b1.x赋值 sys.bl = 100;//正确,给工程配置属性sys.bl赋值 b1.x = b1.x; //正确,给控件属性b1.x赋值 // 错误写法 b1.type = 10; //错误,编译会报错!b1.type只读不写 b1.y = b1.txt.str; //错误,编译会报错!字符串变量不能赋值给数值变量 // 正确写法(赋值符号举例) b1.x += 10; //执行后b1.x增加10 b1.x -= 10; //执行后b1.x减少10 b1.x *= 10; //执行b1.x * 10的结果再赋值给b1.x b1.x /= 10; //执行b1.x / 10的结果再赋值给b1.x, 注意:25/10等于2,只取整数 b1.x %= 10; //执行b1.x % 10的结果再赋值给b1.x, 注意:25%10等于5,求余数 b1.x++; //执行后b1.x增加1 b1.x--; //执行后b1.x减少1 **支持的运算符号:** ``+ - * / % -负号 ()括号`` 优先级参考::ref:`if_ref` :: // 正确写法举例 b1.x = -10; b1.x = 25 / 10; // 执行完b1.x等于2, 25/10等于2,只取整数 b1.x = 25 % 10; // 执行完b1.x等于5, 25%10等于5,求余数 b1.x = (50 + 100) / 10 - 5; // 执行完结果等于10 b1.x *= (50 + 100) / 10 - 5; // 假设b1.x本身为5,执行完后,b1.x = 10 * 5 即50 // 错误写法举例 b1.x = b1.x++; // 错误!++、--符号只能单独作为一条语句 b1.x = b1.x > 100; // 错误!赋值符号右边不支持关系运算符(> == != < >= <=) b1.x = b1.x != 100; // 错误!赋值符号右边不支持关系运算符(> == != < >= <=) b1.x = b1.x && 100; // 错误!赋值符号右边不支持逻辑运算符(&& ||) b1.x = b1.x & 100; // 错误!赋值符号右边不支持位运算符(& | ^ << >>) b1.x = b1.x >> 2; // 错误!赋值符号右边不支持位运算符(& | ^ << >>) 字符串变量 ^^^^^^^^^^^^^^^^^^^^^ **支持的赋值符号:** ``= += -=`` :: // 正确写法举例 b1.txt.str = "123"; //字符串变量赋值 b1.txt.str += "456"; //b1.txt.str本身为"123" 执行后此语句后,为"123456"。(字符串拼接) b1.txt.str = b2.txt.str; //将b2的文本字符串赋值给b1 b1.txt.str -= 2; //b1.txt.str本身为"123" 执行后此语句后,为"1"。(字符串删除) b1.txt.str = "123" - 2; //字符串删除之后再赋值 // 错误写法举例 b1.txt.str = 123; //错误!常量数值不能赋值给字符串变量 b1.txt.str = b2.x; //错误!数值变量不能赋值给字符串变量 b1.txt.str -= "123"; //错误!字符串之间不支持删除运算 **支持的运算符号:** ``+ -`` :: // 正确写法举例 b1.txt.str = "123" + "456"; // 执行完,b1.txt.str等于"123456" b1.txt.str = b2.txt.str + "123"; // 将"123"拼接到b2.txt最后,然后赋值给b1.txt b1.txt.str = b2.txt.str - 2; // 字符串删除2个字符之后再赋值 // 错误写法举例 b1.txt = ("123" + "456"); // 错误! 字符串型变量运算不支持括运算 b1.txt.str = 2 - "123"; // 错误!运算从左往右,不支持数值减去字符串 **目前存在的字符串变量:** ================ ============================== ============= 变量名称 解释 是否可写 ================ ============================== ============= b1.name 控件名称(所有控件) 只读 b1.txt.str 按钮文本值 可读可写 bl1.txt.str 自锁按钮文本值 可读可写 tsl1.txt.str 选择文本文本值 只读 tsl1.str 选择文本选中文本值 只读 ts1.txt.str 滚动文本文本值 可读可写 qr1.str 二维码文本值 可读可写 l1.txt.str 列表文本值 只读 l1.str 列表选中文本值 只读 val1.txt 变量的文本值 可读可写 a1.path 音频的路径(路径为外部TF卡时) 可读可写 v1.path 视频的路径(路径为外部TF卡时) 可读可写 ================ ============================== ============= .. hint:: - 字符串型变量有最最大长度size属性(参考控件的文本属性),当加法运算或赋值的长度大于size时,意味着丢弃多余的字符