我希望在创建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()
表单,但我不知道如何指定它。但是,我宁愿完全删除它。
希望你能帮助我。
答案 0 :(得分:1)
您的deleteWidget()
功能可能如下所示:
def deleteWidget(self, index):
delete_me = self.splitter.widget(index)
delete_me.hide()
delete_me.deleteLater()
我们需要hide()
,因为根据documentation
当你隐藏()一个孩子时,它的空间将分配给另一个孩子 孩子。