【解决方案】火山视窗和py代码交互简单案例
本帖最后由 创世魂 于 2026-8-2 23:57 编辑看到有人问火山和py怎么用,我给大家一个终极方案:
火山自带的案例是稍微有点繁琐复杂。。。
但是这种东西AI最擅长分析了。。直接把火山的例子丢给AI、很快就能给你提炼出想要的信息。。
下面的案例就是我让AI提炼的数据。。AI时代了,要会学会AI来解决问题。。
不要使用网页的分析,要用软件分析:可以使用Trae、WorkBuddy、Qoder、Comate、TRAE Work 或者豆包电脑版。。
当然模型要选择gml5.2或者kimik3或者DeepSeek。。或者千问3.7。。豆包那个智障,想用也可以用,只不过豆包的推理能力不太行。建议最差也是用DeepSeekv4
打开软件后随便打开一个火山项目的文件夹,然后打开AI侧边栏。
AI侧边栏一般都会自动打开,没有自动打开的,在软件的右上角一般都有图标,点就就打开了。
我的提示词就是这么写的,提前把案例源码转换成wsv格式,然后丢给对话框,
如果不在工作目录他可能会请求权限,你同意就行了,然后他就会读取源码。分析内容。
E:\voldev\voldp\samples\vprj_win\samples\vol_python\src
分析一下火山代码是如何和py交互的。
主要是分析一下,传递一个火山变量给py代码,然后py代码执行火山拿到返回数据。。
这个案例太复杂了,给我一个简单的案例。 `g:\Desktop\视窗测试\测试\src\main.wsv` 重写这个源码。
<火山程序 类型 = "通常" 版本 = 1 />
类 我的主窗口 <公开 基础类 = 窗口 @视窗.布局 = "client_size = \"400, 215\"" 标题 = "火山与Python交互简单示例">
{
变量 编辑框_数值1 <类型 = 编辑框 @视窗.布局 = "id = 101\r\npos = \"30, 20, 150, 30\"" 内容 = "10">
变量 编辑框_数值2 <类型 = 编辑框 @视窗.布局 = "id = 102\r\npos = \"200, 20, 150, 30\"" 内容 = "20">
变量 按钮1 <类型 = 按钮 @视窗.布局 = "id = 103\r\npos = \"130, 70, 120, 35\"" 标题 = "调用Python求和">
变量 标签1 <类型 = 标签 @视窗.布局 = "id = 104\r\npos = \"30, 130, 340, 30\"" 标题 = "结果将显示在这里">
方法 我的主窗口_创建完毕 <接收事件 类型 = 整数>
参数 来源对象 <类型 = 我的主窗口>
参数 标记值 <类型 = 整数>
{
// 第一步:初始化Python环境(整个程序只需调用一次)
如果 (Python.初始化 (, 假) == 假)
{
信息框 ("Python初始化失败", "错误")
返回 (0)
}
// 第二步:在Python中定义函数(供后续调用)
// 等价于Python代码:
// def add(a, b):
// return a + b
Python.执行代码 ("def add(a, b):\n return a + b")
返回 (0)
}
方法 按钮_被单击 <接收事件 类型 = 整数>
参数 来源对象 <类型 = 按钮>
参数 标记值 <类型 = 整数>
{
如果 (来源对象 == 按钮1)
{
// ====== 核心:传火山变量给Python,拿回返回数据 ======
// 1. 从编辑框取出火山整数变量
变量 数值1 <类型 = 整数>
变量 数值2 <类型 = 整数>
数值1 = 文本到整数 (编辑框_数值1.内容)
数值2 = 文本到整数 (编辑框_数值2.内容)
// 2. 调用Python的add函数,把火山变量作为参数传过去
// Py对象类.元组(...) 将火山变量打包成Python位置参数
变量 返回对象 <类型 = Py对象类>
返回对象 = Python.调用模块函数 ("add", Py对象类.元组 (数值1, 数值2))
// 3. 将Python返回值转换为火山整数
变量 结果 <类型 = 整数>
结果 = (整数)返回对象
// 4. 显示结果
标签1.标题 = "计算结果:" + 到文本 (数值1) + " + " + 到文本 (数值2) + " = " + 到文本 (结果)
}
返回 (0)
}
}
666666666666666666 火山的例程总是吧一堆功能写在一页代码里,不够清晰,不好理解,如果每个功能或者例程独立分开来写,就容易理解了 没什么鱼 发表于 2026-8-2 15:35
666666666666666666 火山的例程总是吧一堆功能写在一页代码里,不够清晰,不好理解,如果每个功能或者例程 ...
吴总为了方便通篇跑测试。。所以就挤一堆了。。也没拆开。 好评,这样的示例就很清晰了 好好!!理解了!!
页:
[1]