我在main.py文件中有主应用程序,在uiwidgets.py中有一些UI类。
在main.py中的我有:
import uiwidgets as uiw
uiw.MultiColumnListbox(header, data)
def doSomething(self, n)
do something with n
在uiwidgets.py我有:
class MultiColumnListbox(object):
def __init__(self, header, data):
self.header=header
self.data=data
...
self.tree.bind( "<Double-Button-1>", self.OnClick)
def OnClick(self, event):
global return_index
item = self.tree.identify('item',event.x,event.y)
if item is not "":
return_index = (int((item[1:4]),16) - 1)
n = self.data[return_index][0]
当用户单击窗口小部件时,我需要将n值从类返回到main.py.我该怎么办?
答案 0 :(得分:0)
您可以在uiwidgets.py
处创建一个全局变量,然后将其命名为“transfervar”&#39;或类似的东西。然后在main.py中再次导入uiwidgets.py。它应该让你适应&#39; transfervar&#39;在main.py.
如果n的值很复杂或很长,您也可以将其写入文本文件。但是,你需要知识如何编写和读取文件。这是非常好的学习#34;思考pythonger&#34;,Allen B. Downey,第14章。
使用全局变量的代码如下所示:
transfervar = None #just to create, you could set it 0, too
class MultiColumnListbox(object):
def __init__(self, header, data):
self.header=header
self.data=data
...
self.tree.bind( "<Double-Button-1>", self.OnClick)
def OnClick(self, event):
global return_index
item = self.tree.identify('item',event.x,event.y)
if item is not "":
return_index = (int((item[1:4]),16) - 1)
n = self.data[return_index][0]
global transfervar #needs to be declared as global
transfervar = n