gpt4 book ai didi

python - 从 Windows 窗体调用 Python 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:51 25 4
gpt4 key购买 nike

我是一名 IronPython 新手,需要一些帮助。我有一个在 Visual Basic 2010 Express 中创建的 Windows 窗体,其中包含两个文本框('txtNumber' 和 'txtResult')和一个按钮('<强>btnSquare')。我想要做的是能够在单击表单上的按钮时调用下面的 Python 脚本('Square.py');

class SquarePython:

def __init__(self, number):

self.sq = number*number

此脚本应将输入到“txtNumber”中的数字进行平方,然后将结果输出到“txtResult”中。我知道这太简单了,但我只需要了解基础知识。到目前为止,我的 VB 代码如下;

Imports Microsoft.Scripting.Hosting
Imports IronPython.Hosting
Imports IronPython.Runtime.Types

Public Class Square

Private Sub btnSquare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSquare.Click

Dim runtime As ScriptRuntime = Python.CreateRuntime

Dim scope As ScriptScope = runtime.ExecuteFile("Square.py")

End Sub

End Class

提前致谢。

最佳答案

如果你不介意的话,我会用 C# 给出答案。但无论如何它与 VB 版本非常相似。对于您的代码来说,访问 SquarePython 非常简单

ScriptEngine py = Python.CreateEngine();

ScriptScope scope = py.ExecuteFile("Square.py");

dynamic square = scope.GetVariable("SquarePython");

int result = (int)square(5);

Console.WriteLine(result.sq); //prints 25 as you might expected

但是为了简单起见,我会稍微修改一下Python代码,就像这样

class SquarePython:
def Square(self, number):
return number * number

这样您就不必在每次计算时都创建一个对象。下面给出了检索变量并调用 square 方法的代码:

ScriptEngine py = Python.CreateEngine();

ScriptScope scope = py.ExecuteFile("Square.py");
//get variable and then create and object. Could be stored somewhere between computations
dynamic squareInstance = scope.GetVariable("SquarePython")();

int result = (int) squareInstance.Square(5);

Console.WriteLine(result);

注释:请参阅 VB.Net equivalent for C# 'dynamic'如果您需要将 dynamic 关键字转换为 VB.NET

关于python - 从 Windows 窗体调用 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14137455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com