我有一個基類,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