2009-10-13 62 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函數的末尾即可。