【发布时间】:2013-04-26 20:59:50
【问题描述】:
我正在使用 PyQt 和 QT4 编写应用程序。我正在使用 QTabWidget 并将我的选项卡设置为可关闭并将 tabCloseRequsted 信号连接到方法。
self.ui.tabWidget.tabCloseRequested.connect(self.onTabClose)
def onTabClose(self,index):
self.ui.tabWidget.removeTab(index)
只要我只关闭最后一个标签页,这工作正常,但如果说 5 个标签打开并关闭第二个标签,则第 3、第 4 和第 5 个标签也关闭。我想解决这个问题的方法是将我想要关闭的标签移动到最后,使其具有最高索引。
然而,另一件事。用户可以创建标签,所以当一个标签关闭时,我不知道是打开了一个、两个还是十个标签。
如何移动标签页?或者更好的是有没有更好的方法来关闭标签页?
【问题讨论】:
-
好的,我自己发现了问题。我将 self.ui.tabWidget.tabCloseRequested.connect(self.onTabClose) 放在与创建新选项卡相同的方法中。这意味着如果创建了 5 个选项卡,那么当关闭一个选项卡时, tabCloseReqested 会触发 5 次。通过像我应该做的那样将这个连接语句放在我的类的 init 中,它只定义一次,并且只在关闭选项卡时触发一次。