【发布时间】:2011-09-18 15:07:12
【问题描述】:
我想创建一个小部件,它有一个可以动态更改的子小部件。这是我尝试过的:
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”标签。它仍然呈现在“栏”之上。 Screenshot of the problem。如何删除旧的小部件以便只显示新的小部件?
我知道我可以更改标签的文本属性。这不是我想要的应用程序,我需要更改实际的小部件(更改为不同的小部件类型)。
【问题讨论】:
标签: python qt pyqt pyqt4 pyside