我有基于QT的GUI,其中我从文本文件中读取LineEdit
的内容。 GUI由一个类表示(在用户的选择中有很多这样的GUI选择),而我想保持在课堂外阅读和显示的功能。所以,为此我创建了一个所述类的对象并将其传递给外部函数。但是,它不会显示从GUI中分配的框中的文件中读取的单词。此外,当我将对象等同于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>
即。 self
和objClass
位置不同。为什么会这样?它们是否应该位于同一位置以便显示所有消息。可以在同一个类定义中创建类的对象吗?
而不是做:
classObj = MainClass() # object
ret = readFile(classObj,'REX011')
我可以安全地做到这一点吗?
ret = readFile(self,'REX011')
答案 0 :(得分:3)
classObj = MainClass() # object
将创建另一个新的MainWindow()实例。这不是你需要的。 ret = readFile(self,'REX011')
应该做你需要的。