1

我正在用 PyQt 和 QT4 编写一个应用程序。我正在使用 QTabWidget 并将我的选项卡设置为可关闭并将 tabClos​​eRequsted 信号连接到方法。

self.ui.tabWidget.tabCloseRequested.connect(self.onTabClose)

def onTabClose(self,index):       
    self.ui.tabWidget.removeTab(index)

只要我只关闭最后一个标签页,这工作正常,但如果说打开 5 个标签并关闭第二个标签,则第 3、第 4 和第 5 个标签也关闭。我想解决这个问题的方法是将我想要关闭的选项卡移到最后,使其具有最高索引。

然而,另一件事。用户可以创建选项卡,所以当一个选项卡关闭时,我不知道是否打开了一个、两个或十个选项卡。

如何移动标签页?甚至更好的是有更好的方法来关闭标签页吗?

4

1 回答 1

0

好的,我自己发现了问题。我将 self.ui.tabWidget.tabClos​​eRequested.connect(self.onTabClos​​e) 放在与创建新选项卡相同的方法中。这意味着如果创建了 5 个选项卡,那么当关闭一个选项卡时, tabClos​​eReqested 会触发 5 次。通过像我应该做的那样将此连接语句放在我的类的 init 中,它只定义一次,并且只在关闭选项卡时触发一次。

于 2013-05-02T23:11:58.217 回答