2015-12-14 112 views
0

我有基於QT的GUI,其中我從文本文件中讀取LineEdit的內容。 GUI由一個類來表示(根據用戶的選擇,有很多這樣的GUI),而我想保留在課外閱讀和顯示的功能。所以,爲此,我創建了該類的一個對象並將其傳遞給了外部函數。但是,它不會顯示從GUI中分配框中的文件中讀取的文字。此外,當我將對象等同於self時,則僅顯示文本。以下是代碼片段。Python類對象與「self」相同

class MainClass(QtGui.QWidget, Ui_MyClass): 
     def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setupUi(self) 

    def fillBoxes(self): 
     self.messageBox.setText("Reading File !!") 
     time.sleep(2) 
     classObj = MainClass() # object 
     print "entering func.." 
     ret = readFile(classObj,'REX011') 
     print self, classObj 

def readFile(resClass,res): 
    ......functioning related to file read.... 
    ..... 
    resClass.messageBox.setText("File Read Complete!!") # No display 

控制檯輸出爲print語句以上的產率

<myFile.MainClass object at 0xb36682b4>

<myFile.MainClass object at 0xb36ac26c>

即兩個selfobjClass被不同地定位。這是爲什麼發生?如果它們不在同一地點,以便顯示所有消息。可以在同一個類定義中創建類的對象嗎? 而不是做的:

classObj = MainClass() # object 
ret = readFile(classObj,'REX011') 

我能做到這一點?安全

ret = readFile(self,'REX011') 
+0

爲什麼你不能只用'self'?除此之外,如果你真的需要'MainClass()'返回同一個對象,那麼你想實現一個單例。 –

回答

3

classObj = MainClass() # object將創建另一個新的MainWindow()實例。這不是你需要的。 ret = readFile(self,'REX011')應該做你需要的。

相關問題