【问题标题】:PyQt: Displaying QTextEdits over the windowPyQt:在窗口上显示 QTextEdits
【发布时间】:2010-12-06 04:25:14
【问题描述】:

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

【问题讨论】:

    标签: python qt qt4 pyqt pyqt4


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 2021-03-23
      相关资源
      最近更新 更多