PyQt:在窗口上显示QTextEdits

时间:2009-10-13 01:49:51

标签: python qt qt4 pyqt pyqt4

我想在任意位置的主窗口上显示一些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 个答案:

答案 0 :(得分:1)

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