IronPython Windows窗体,以python传递变量

2024-10-01 07:48:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我是IronPython的新手,尝试用windows窗体创建一个简单的应用程序,它可以将固定字段的文件转换为分隔的文件。在

我创建了一个有三个按钮的窗体。在

首先是选择要转换的文件。 第二种方法是用第一个文件的布局选择一个文件。 第三个是“提交”按钮,将上面两个文件的文件名发送给python函数,该函数将转换文件。在

前两个按钮工作正常。我的问题是将文件名传递给“button_submitPressed”函数。我试图创建FILENAME和LAYOUT全局变量(我在'HelloWorldForm'类内外都尝试过,但都不起作用)。在

如何将在按钮事件中收集的变量传递给另一个函数?在

当我运行这个程序时,当我单击submit按钮(在单击前两个并选择文件名和布局之后),我得到错误:

IronPython.Runtime.UnboundNameException: global name 'FILENAME' is not defined

谢谢。在

^{pr2}$

Tags: 文件方法函数应用程序文件名windowsbutton布局
2条回答

我可以通过在前两个按钮处理程序中放入一个全局变量来实现这一点。在

def buttonPressed(self, sender, args):
    global FILENAME
    dialogf = OpenFileDialog()
    if dialogf.ShowDialog() == DialogResult.OK:
        FILENAME = dialogf.FileName
        print "FILENAME: ",FILENAME
    ...

def button2Pressed(self, sender, args):
    global LAYOUT
    dialogl = OpenFileDialog()
    if dialogl.ShowDialog() == DialogResult.OK:
        LAYOUT = dialogl.FileName
        print "LAYOUT: " + dialogl.FileName
    ...

然后在第三个按钮处理程序中:

^{pr2}$

第三个按钮处理程序随后成功调用convert函数。在

对于将来的读者来说,如果OP通过类访问他的类级常量,那么他的代码就可以工作了:

def button_submitPressed(self, sender, args):
    convert(self.FILENAME,self.LAYOUT)

相关问题 更多 >