PyQt: отображение QTextEdits в окне - PullRequest
1 голос
/ 13 октября 2009

Я хочу отобразить некоторые 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 Ответ

1 голос
/ 13 октября 2009

О, я понял. Вы должны вызвать шоу на каждом виджете, прежде чем он появится. Я предполагаю, что QMainWindow.show рекурсивно вызывает метод для всех его дочерних элементов. Так что просто добавьте text.show () в конец функции new_text, и она работает.

...