2011-10-14 103 views
0

該代碼是沿此線:PyQt從類中返回空字符串?

class Solver(QDialog): 
    def __init__(self, parent=None): 
     blabla 

    def solver(self): 
     return qlineedit1.text() 

class access(QMainWindow): 
    prda = Solver().solver() 
    print prda 

的問題是,PRDA是空字符串。如果我在Solver類中放置「print qlineedit1.text()」,文本將按照它應該顯示的方式顯示。但是,當「轉移」到不同的類時,該字符串是空的。它存在的最奇怪的部分 - 如果我鍵入(prda),我會得到QString類型的輸出。

那麼,我將如何讓prda承擔qlineedit1.text()的價值?我正在考慮將文本寫入Solver類中,然後從訪問類中讀取它,但必須有另一種解決方案。順便說一下,Solver類和訪問類是兩個對話框。

幫助?

+0

我不能複製這個。在省略的部分中是否還有其他內容? – Avaris

+0

可能是。什麼可能導致QString在那裏,但是是空的? :/ –

+0

不能說沒有看到更多的代碼。 – Avaris

回答

0

由於下一個代碼按預期工作,所有我可以想出來,沒有看到更多的代碼是你的qlineedit1是空的。

from PyQt4 import QtGui 


class Solver(QtGui.QDialog): 
    def __init__(self, parent=None): 
     print "in Solver init" 

    def solver(self): 
     return "in solver() method" 

class access(QtGui.QMainWindow): 
    prda = Solver() 
    print prda.solver() 
    #this will work too: 
    #prda = Solver().solver() 
    #print prda 

if __name__ == '__main__': 
    import sys 
    app = QtGui.QApplication(sys.argv) 

    acc=access() 
    acc.show() 

    sys.exit(app.exec_())