# 包路径
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模版open in new window

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)
更新日期:
Contributors: 自在