1

我想在我的主窗口的任意位置显示一些 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_()
4

1 回答 1

1

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

于 2009-10-13T02:32:08.217 回答