# 包路径
from airscript.ui
界面(UI)
用户交互
通过界面,程序与用户交互
Airscript UI 采用 Html 与Python交互实现
窗口
# 包路径
from airscript.ui import Window
Window()
模式
Window(...).
消息通道
Window(...).
from airscript.ui import Window
from airscript.system import R
def tunner(k,v):
print(k,v)
w = Window(R(__file__).ui("loger.html"))
w.tunner(tunner) # 在这里设置消息通道
w.show()
尺寸
窗口宽
Window(...).
窗口高
Window(...).
背景
Window(...).
拖拽
Window(...).
遮罩
Window(...).
引力
Window(...).
- 引力方向: 窗口靠左,窗口靠右,还是窗口居中 等.
- 窗口的组合引力 应该使用 ‘|’ 连接多个引力值
# 引力的组合写法
# 右上角
Window(...).gravity(48|5)
# 右下角
Window(...).gravity(80|5)
#左上角
Window(...).gravity(48|3)
#左下角
Window(...).gravity(80|3)
#左垂直居中
Window(...).gravity(3|16)
#右垂直居中
Window(...).gravity(5|16)
#上横向居中
Window(...).gravity(48|1)
#下横向居中
Window(...).gravity(80|1)
位置
窗口横坐标x
Window(...).
窗口纵坐标y
Window(...).
显示
Window(...).
关闭
Python 中关闭
Window(...).
Html javascript 中关闭
window.
数据交互
Python 调用 JavaScript 方法
# 导包
from airscript.ui import Window
#构建与展示UI
w = Window(R(__file__).res('/ui/a.html'))
w.show()
# 调用 javascript 中的 函数 fun1 ,并传入参数 "自在老师",2
w.call('fun1("自在老师",2)')
JavaScript 向 Python 传递数据
<script>
//这里的 key,value 用户填入自定义的值 ,在 python 的Window 构造参数 tunnel 中会回调
window.airscript.call('key',"value")
</script>
JavaScript 中的快捷方法
方法 | 备注 |
---|---|
airscript.close() | 关闭当前窗口 |
airscript.get("key") | 获取 Python 中Kv 存储的数据,仅支持string数据 |
airscript.save("key","value") | 快速存储数据到本地,和Python Kv函数数据互通,仅支持string数据 |
<script>
//在JS 中直接关闭当前窗口
window.airscript.close()
</script>
<script>
//在JS 中获取 Python代码中 Kv 存储的值
var value = window.airscript.get("key")
</script>
<script>
//在JS 调用 save 将数据存储在本地 只支持存储string 类型的值.
window.airscript.save("key","value")
</script>
弹窗
吐司
# 导包
from airscript.ui.dialog import toast
# 展示一个简单吐司提示,3秒后消失,位置偏屏幕中心点 y坐标+20%屏幕高度
toast('我认识自在老师')
# 展示一个简单吐司提示,5秒后消失,位置偏屏幕中心点 y坐标+20%屏幕高度
toast('我认识自在老师',5000)
# 展示一个简单吐司提示,3秒后消失,位置偏屏幕中心点 x+100px,y+200px
toast('我认识自在老师',3000,100,200)
# 展示一个简单吐司提示,3秒后消失,位置偏屏幕中心点 y坐标-20%屏幕高度
toast('我认识自在老师',3000,0,-0.2)
# 展示一个简单吐司提示,3秒后消失,位置偏屏幕中心点 y坐标+20%屏幕高度
toast('我认识自在老师',3000,0,0.2)
# 展示一个简单吐司提示,3秒后消失,位置偏屏幕中心点 x坐标+20%屏幕宽度
toast('我认识自在老师',3000,0.2,0)
# 展示一个简单吐司提示,3秒后消失,位置为屏幕左上角位置
toast('我认识自在老师',3000,3|48,0,0)
消息提示
# 导包
from airscript.ui.dialog import alert
# 导包
from airscript.ui.dialog import alert
# 案例1: 弹出一个信息提示框
alert('您好,我是你们的API导师,自在老师.')
# 导包
from airscript.ui.dialog import alert
# 案例2: 弹出一个信息提示框,并更改确认按钮为知道了
alert('您好,我是你们的API导师,自在老师.','知道了')
消息确认
# 导包
from airscript.ui.dialog import confirm
- 创建一个消息确认对话框
- 属性方法
方法与参数 | 类型 | 必须 | 备注 |
---|---|---|---|
.title(msg) | string | 必填 | 设置标题 |
.submit(msg) | string | 必填 | 设置确认按钮值 |
.cancle(msg) | string | 必填 | 设置取消按钮值 |
.close() | 关闭弹窗 | ||
.show(pyfun) | python 函数,需要两个形参 | 必填 | UI数据回调函数, 格式如: 'comfirm - 回调函数格式' 点击确认按钮后 k = "__confirm",v = "sure" 点击取消按钮后 k = "__confirm",v = "cancle" |
# comfirm - 回调函数格式
def tunner(k,v):
if(k=="__confirm"):
if v = "sure":
print('点击了确认')
else:
print('点击了取消')
# 导包
from airscript.ui.dialog import confirm
# 案例1: 弹出一个确认框
def tunner(k,v):
if(k=="__confirm"):
if v == "sure":
print('点击了确认')
else:
print('点击了取消')
dialog = confirm('您确定要学习Airscript吗?').show(tunner)
# 导包
from airscript.ui.dialog import confirm
# 案例2: 弹出一个确认框,并指定标题
def tunner(k,v):
if(k=="__confirm"):
if v == "sure":
print('点击了确认')
else:
print('点击了取消')
dialog = confirm('您确定要学习Airscript吗?').title("学习提示").show(tunner)
# 导包
from airscript.ui.dialog import confirm
# 案例3: 弹出一个确认框,并指定标题,确认按钮 和取消按钮文本
def tunner(k,v):
if(k=="__confirm"):
if v == "sure":
print('点击了确认')
else:
print('点击了取消')
dialog = confirm('您确定要学习Airscript吗?')
dialog.title("学习提示")
dialog.submit("我要学习")
dialog.cancle("不想学")
dialog.show(tunner)
文本输入
# 导包
from airscript.ui.dialog import promat
- 创建文本输入框
- 属性方法
# promat - 回调函数格式
def tunner(k,v):
if(k=="__promat"):
if v == "cancle":
print('点击了取消')
else:
print('点击了确认:输入值为:',v)
# 导包
from airscript.ui.dialog import promat
# 案例: 弹出一个文本输入框
def tunner(k,v):
if(k=="__promat"):
if v == "cancle":
print('点击了取消')
else:
print('点击了确认:输入值为:',v)
dialog = promat('您确定要学习Airscript吗?').show(tunner)
# 导包
from airscript.ui.dialog import promat
# 案例2: 弹出一个文本框,设置详细属性
def tunner(k,v):
if(k=="__promat"):
if v == "cancle":
print('点击了取消')
else:
print('点击了确认:输入值为:',v)
dialog = promat('您确定要学习Airscript吗?')
dialog.value("文本内容预设值")
dialog.hint("这是默认提示")
dialog.title("标题文本")
dialog.submit("提交")
dialog.cancle("再见")
dialog.show(tunner)
日志窗口
# 包路径
from airscript.ui.dialog import loger
- 日志窗口
from airscript.ui.dialog import loger
# loger 继承与 Window 因此,我们可以使用 Window中任何方法
log = loger()
log.show()
# log.close()
自定义日志窗口
自定义日志窗口需要下载UI模版
from airscript.ui.dialog import loger
def tunner(k,v):
print(k,v)
# loger 继承 Window ,因此 Window 中的方法,loger都可以使用
lw = loger(R(__file__).ui("loger.html"))
lw.tunner(tunner) # 设置消息通道
lw.show() # 展示
悬浮窗
# 包路径
from airscript.ui import Float
隐藏
# 导包
from airscript.ui import Float
# 隐藏悬浮窗
Float.hide()
展示
# 导包
from airscript.ui import Float
# 显示悬浮窗
Float.show()
位置与透明度
# 导包
from airscript.ui import Float
# 显示悬浮窗,并设置位置为100,100
Float.show(100,100)
# 显示悬浮窗,并设置位置为 20%宽度,40%高度
Float.show(0.2,0.4)
# 显示悬浮窗,透明度设置为30%,并设置位置为100,100
Float.show(0.3,100,100)