2

在我创建 2-3 个之后,我想Qwidget从 a 中删除一个特定的QSplitter(或者QSplitter它是我最好的选择)。

为此,我需要获取我创建的每个小部件的索引。

这是我的代码:

class Windows(self):
  list1 = [widget1, widget2, widget3]
  counter = 0
  def __init__(self):
    #A lot of stuff in here

    self.splitter = QSplitter(Qt.Vertical)

    self.spliiter_2 = QSplitter(Qt.Horizontal)
    self.splitter_2.addwidget(self.splitter)

  def addWidget(self):
    if counter == 1:
      self.splitter.addWidget(Windows.list1[0])
      counter += 1

    if counter == 2:
      counter += 1
      self.splitter.addWidget(Windows.list1[1])

    if counter == 3:
      self.splitter.addWidget(Windows.list1[2])
      counter += 1


  def deleteWidget(self):
    ?????????????? 

正如你在上面看到的,我在 Windows 类中创建了一个 QSplitter,然后我创建了另一个(self.splitter_2),我把第一个放在了。

每次按下组合键时,我都会调用该addWidget方法,它会从 list1 添加一个小部件(取决于变量计数器)。

如果我想删除第二个小部件(例如),我该怎么做,而不删除第一个小部件?我认为我需要索引,但我不知道如何获取它。

顺便说一句,我创建了一个调用该deleteWidget方法的按钮。

我阅读了hide()表格,但我不知道如何指定它。但是,我宁愿完全删除它。

希望您能够帮助我。

4

1 回答 1

3

您的deleteWidget()函数可能如下所示:

def deleteWidget(self, index):
    delete_me = self.splitter.widget(index)
    delete_me.hide()
    delete_me.deleteLater()

我们需要hide(),因为根据文档

当你 hide() 一个孩子时,它的空间将分配给其他孩子。

于 2016-01-30T21:12:47.733 回答