2011-10-14 69 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_())