我有一个基类,QLineEdit的,这仅仅是一个可编辑的文本框从PyQt5的一个简单的子类:Python:如何访问PyQt中已经实例化的类对象?
class pQLineEdit(QtWidgets.QLineEdit):
def __init__(self, parent = None):
QtWidgets.QWidget.__init__(self,parent)
def mouseDoubleClickEvent(self,e):
self.setText("Test")
此类工作正常。当我双击它时,对象的文本确实会更新。
但是,在这个事件中,我需要从另一个文件中另一个已经实例化的类访问一个对象foo.bar。我怎样才能做到这一点?我曾尝试
import other_file
...
def mouseDoubleClickEvent(self,e):
self.setText("Test")
foo.bar
我得到:
NameError: global name 'foo' is not defined
我已经试过黑客只是利用
eval("foo.bar")
我的方式,但它抱怨foo.bar没有定义。我觉得这很简单,但答案没有回答。
我应该澄清一点:foo()是在另一个文件main()中的FUNCTION中实例化的类。我必须访问实例化的类,因为它包含一个SSH隧道。我不认为我的问题是列举出来的。
您需要更具体地了解其他对象以及它所在的模块。您需要将该对象存储在事件处理程序可以访问的地方。这可能需要从包含处理程序的模块导入包含“foo.bar”的模块。 – BrenBarn
这似乎并不是一个pyqt问题,而是一个非常基本的python问题,已经在这里得到解答。例如http://stackoverflow.com/questions/15168024/python-access-objects-from-another-module – neuronet