我有一个QSplitter
有两个小部件,想替换其中一个:
import sys
from PySide2.QtWidgets import (QMainWindow, QApplication,
QVBoxLayout, QWidget, QSplitter, QTextEdit, QLabel)
class Example(QWidget):
def __init__(self):
super().__init__()
splitter = QSplitter()
splitter.insertWidget(0, QLabel('test'))
splitter.insertWidget(1, QTextEdit())
print(splitter.count()) # prints 2
splitter.replaceWidget(1, QLabel('something else'))
print(splitter.count()) # prints 1
self.layout = QVBoxLayout(self)
self.layout.addWidget(splitter)
if __name__ == "__main__":
app = QApplication()
main = Example()
main.show()
sys.exit(app.exec_())
我的理解replaceWidget
是,它将用提供的小部件替换拆分器中索引 X 上的现有小部件。在上面的示例中,索引 0 上有 aQLabel('test')
和索引 1 QTextEdit()
。
在尝试替换索引 1 上的小部件后,我希望它是QLabel('something else')
. 但似乎索引 1 上的小部件只是从查看count()
替换操作之前和之后的输出中删除。
任何人都可以看到这个问题吗?