PyQt:通过窗口显示QTextEdits
问题描述:
我想在任意位置的主窗口上显示一些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_()
答
哦,我明白了。您必须在每个小部件出现之前调用show。我想QMainWindow.show递归调用它的所有孩子的方法。所以只需将text.show()添加到new_text函数的末尾即可。