Event语法糖
大约 1 分钟
Event语法糖
IDEPY NEXT实现了Event语法糖,可以让开发者轻松为GUI绑定简单Python事件。
相关的事件和方法可以通过以下方式引入:
# 主窗口通讯API
# 继承便捷的窗口WindowAPI,提供系列窗口功能函数,数据通讯功能。
# 继承ElementPlusUtils,获得该UI框架快捷功能支持:如self.message_loading、message_success等。
class MainWindow(idepy_next.WindowAPI, ElementPlusUtils):
# 当前窗口的元素对象映射,可通过self._elements.button1快速调用
_elements = Els()
def __init__(self):
super().__init__()
# 设置主窗口
self.web_data = {
"version": ver.version
}
# 使用语法糖快速将API绑定到特定元素,仅支持原生事件
# 以下代码等价于onclick="api.btn_click"
@bindElementEvent('#button1', ElementEvent.Button.click)
def button1_click(self, *args, **kwargs):
# args将返回对应元素事件的相关参数值
print("原生按钮被点击,当前输入框内容", self._elements.input1.value)
msg = json.loads(self._elements.input1.value) or '<暂无输入内容>'
# 其他程序逻辑
# ....
# 执行网页JS
super()._window().evaluate_js(f'alert(`当前输入框内容为:{msg}`)')
bindElementEvent
绑定元素事件,只作用WindowAPI生效的类,等价于onclick="api.xxx"绑定。
- element_query: 绑定的元素查询器,输入document、window则使用相应对象,默认为document
- event_type: 绑定的元素事件,可以通过ElementEvent.Button.click获取相应类型的值。from idepy_next import bindElementEvent, ElementEvent
bindVueElementEvent
绑定Vue元素事件,只作用WindowAPI生效的类,等价于@click="api.xxx"绑定。
- element_query: 绑定的元素查询器,输入document、window则使用相应对象,默认为document
- event_type: 绑定的元素事件,可以通过ElementEvent.Button.click获取相应类型的值。from idepy_next import bindElementEvent, ElementEvent
ElementEvent
元素事件常量,可根据事件类型获取对应文本,具体内容此处不作描述,自行通过IDE语法提示引用或自行输入文本也可以。