我想创建一个有一个可以动态改变的子窗口小部件.这是我试过的:
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setLayout(QVBoxLayout())
self.child = QLabel("foo", self)
self.layout().addWidget(self.child)
def update(self):
self.layout().removeWidget(self.child)
self.child = QLabel("bar", self)
self.layout().addWidget(self.child)
app = QApplication(sys.argv)
widget = Widget()
widget.show()
widget.update()
app.exec_()
问题在于,这并没有真正地去除“foo”标签.它仍然呈现在“bar”顶部. Screenshot of the problem.如何删除旧的小部件,以便只显示新的小部件?
我知道我可以改变标签的text属性.这不是我在应用程序中需要的,我需要更改实际的widget(到另一个widget类型).