从QSplitter

时间:2016-01-30 14:17:54

标签: python pyqt qwidget qsplitter

我希望在创建2-3个之后从Qwidget(或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()表单,但我不知道如何指定它。但是,我宁愿完全删除它。

希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

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

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

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

  

当你隐藏()一个孩子时,它的空间将分配给另一个孩子   孩子。