首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从QSplitter中删除QWidgets

要从QSplitter中删除QWidgets,可以使用以下步骤:

  1. 首先,确定要删除的QWidget的位置或索引。可以使用QSplitter的indexOf()方法来获取QWidget的索引。
  2. 使用QSplitter的widget()方法获取要删除的QWidget。
  3. 使用QSplitter的removeWidget()方法删除QWidget。
  4. 如果需要,可以使用QWidget的deleteLater()方法来删除QWidget。

以下是一个示例代码:

代码语言:python
代码运行次数:0
复制
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QSplitter

class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout(self)

        splitter = QSplitter(self)
        splitter.setOrientation(Qt.Vertical)

        widget1 = QWidget()
        widget2 = QWidget()
        widget3 = QWidget()

        splitter.addWidget(widget1)
        splitter.addWidget(widget2)
        splitter.addWidget(widget3)

        btn = QPushButton('Remove Widget 2', self)
        btn.clicked.connect(lambda: self.removeWidget(widget2))

        vbox.addWidget(splitter)
        vbox.addWidget(btn)

        self.setLayout(vbox)

    def removeWidget(self, widget):
        splitter = self.findChild(QSplitter)
        index = splitter.indexOf(widget)

        if index != -1:
            splitter.removeWidget(widget)
            widget.deleteLater()

if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    ex.show()
    app.exec_()

在这个示例中,我们创建了一个包含三个QWidgets的QSplitter,并添加了一个按钮来删除其中的一个QWidget。当单击按钮时,我们使用indexOf()方法获取要删除的QWidget的索引,然后使用removeWidget()方法将其从QSplitter中删除,并使用deleteLater()方法将其从内存中删除。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券