🐍 Python 弹窗使用指南

用 Python 语法定义交互式弹窗,直观易写

📌 什么是 Python 弹窗?

Python 弹窗功能允许你在 Gandi 文件编辑器中编写 Python 脚本来定义弹窗界面。扩展会自动解析脚本中的 print()、input()、BetterPopup.select() 等语句,将其转换为对应的弹窗 UI 元素。

弹窗关闭后,所有用户输入的数据以 JSON 对象 形式返回,键名为 Python 中的变量名。

Python 弹窗不需要真正执行 Python 代码——它只是解析语法结构来生成界面,因此无需 Python 运行环境。

🚀 快速开始

  1. 1 在 Gandi 文件编辑器中新建文件,命名为 form.py
  2. 2 编写 Python 弹窗代码(见下方示例)
  3. 3 在 Scratch 中使用积木 「用Python文件 [form.py] 生成弹窗并返回」
  4. 4 积木返回 JSON 字符串,包含用户输入的所有数据

📝 基础示例

一个简单的用户信息收集表单:

form.py import BetterPopup # 显示欢迎文字 print("请填写用户信息") # 文本输入框 name = input("请输入姓名") # 数字输入框 age = BetterPopup.input2("请输入年龄", int) # 下拉选择 gender = BetterPopup.select("男", "女")

返回结果:

JSON { "name": "张三", "age": 25, "gender": "男" }

🎯 完整示例

展示所有 API 的完整弹窗:

full-demo.py import BetterPopup # ===== 显示文字 ===== print("欢迎使用完整演示!") print("请完成以下表单:") # ===== 文本输入框 ===== username = input("请输入用户名") address = input("请输入地址") # ===== 指定类型的输入框 ===== age = BetterPopup.input2("请输入年龄", int) score = BetterPopup.input2("请输入分数", float) pwd = BetterPopup.input2("设置密码", password) # ===== 下拉选择器 ===== city = BetterPopup.select("北京", "上海", "广州", "深圳") role = BetterPopup.select("学生", "教师", "管理员") # ===== 文件导入 ===== avatar = BetterPopup.importFile() # ===== 自定义 HTML 元素 ===== volume = BetterPopup.custom('<input type="range" min="0" max="100" value="50">')

返回结果:

JSON { "username": "zhangsan", "address": "北京市朝阳区", "age": 25, "score": 98.5, "pwd": "abc123", "city": "北京", "role": "学生", "avatar": "data:image/png;base64,...", "volume": 50 }

📖 API 参考

Python 语句弹窗元素返回值类型
print("文字") 弹窗显示文字 —(不返回值)
id = input("提示") 文本输入框 字符串
id = BetterPopup.input2("提示", int) 整数输入框 数字
id = BetterPopup.input2("提示", float) 小数输入框 数字
id = BetterPopup.input2("提示", password) 密码输入框 字符串
id = BetterPopup.input2("提示", email) 邮箱输入框 字符串
id = BetterPopup.input2("提示", url) 网址输入框 字符串
id = BetterPopup.select("A", "B", "C") 下拉选择器 选中的值(字符串)
id = BetterPopup.importFile() 文件导入 文件内容(字符串)
id = BetterPopup.custom('html') 自定义 HTML 元素 元素值

🔤 input2 支持的类型

Python 类型弹窗输入类型说明
int整数输入框只接受整数,返回数字类型
float小数输入框接受小数,返回数字类型
str / string文本输入框普通文本,返回字符串
password密码输入框输入内容被遮挡,返回字符串
email邮箱输入框邮箱格式提示,返回字符串
url网址输入框URL 格式提示,返回字符串

🔄 Python vs Popup 文件

两种弹窗定义方式各有优势,可根据场景选择:

🐍 Python 文件

  • 语法简洁,类似 Python 代码
  • 变量名即为返回值的键名
  • 适合熟悉 Python 的用户
  • 代码更紧凑
name = input("姓名") age = BetterPopup.input2("年龄", int)

📄 Popup 文件

  • 类 HTML 标签语法
  • 支持更多元素类型(滑杆、颜色等)
  • 适合熟悉 HTML 的用户
  • 结构更直观
<input id="name" placeholder="姓名"> <input id="age" type="number">

🧩 在 Scratch 中使用

使用积木 「用Python文件 [FILE] 生成弹窗并返回」:

📁 文件选择

下拉菜单自动列出 Gandi 文件编辑器中所有 .py 文件,也可手动输入文件名。

📦 返回值

弹窗关闭后返回 JSON 字符串,键名为 Python 中赋值的变量名,值为用户输入。

🔗 数据解析

配合 JavaScript 工具箱等扩展解析 JSON,获取各字段值进行后续处理。

每个赋值语句的变量名(如 name、age)会作为 JSON 的键名,请确保变量名唯一且不重复。

💬 注释语法

Python 弹窗文件使用标准 Python 注释,注释行不会被解析:

注释示例 # 这是注释,不会被解析 print("标题") # name = input("被注释掉的代码不会生效")