2009-10-13 58 views
1

我想在任意位置的主窗口上显示一些QTextEdits。以下是我的第一次尝试。它不太有效。如果我在显示窗口之前创建文本编辑,则会显示文本编辑,但如果在显示窗口后创建它们,则不会显示。那是怎么回事?我怎样才能让后来创建的人出现?PyQt:通过窗口显示QTextEdits

import sys, random 

from PyQt4 import QtGui, QtCore 

app = QtGui.QApplication(sys.argv) 
win = QtGui.QMainWindow() 
win.resize(500,500) 

def new_text(): 
    print "new text" 
    text = QtGui.QTextEdit(win) 
    text.move(random.random() * 400, random.random() * 400) 

for i in range(3): 
    new_text() 

timer = QtCore.QTimer() 
timer.connect(timer, QtCore.SIGNAL("timeout()"), new_text) 
timer.start(500) 

win.show() 
app.exec_() 

回答

1

哦,我明白了。您必须在每个小部件出现之前调用show。我想QMainWindow.show递归调用它的所有孩子的方法。所以只需将text.show()添加到new_text函数的末尾即可。