PyQt4(QTabWidget)如何改变标签页的位置

Posted

技术标签:

【中文标题】PyQt4(QTabWidget)如何改变标签页的位置【英文标题】:PyQt4 (QTabWidget) how to change position of a Tab Page 【发布时间】:2013-04-26 20:59:50 【问题描述】:

我正在使用 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 个标签也关闭。我想解决这个问题的方法是将我想要关闭的标签移动到最后,使其具有最高索引。

然而,另一件事。用户可以创建标签,所以当一个标签关闭时,我不知道是打开了一个、两个还是十个标签。

如何移动标签页?或者更好的是有没有更好的方法来关闭标签页?

【问题讨论】:

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

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

【讨论】:

以上是关于PyQt4(QTabWidget)如何改变标签页的位置的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4:如何/何时从 QTabWidget 的子类发出自定义信号?

PyQt4:如何分别为QTabWidget中的每个选项卡着色?

PyQt4 菜单操作以将新选项卡添加到 QTabWidget

PyQt4 QTabWidget TAB CHANGE....currentChange(int) 不起作用

访问 QTabWidget 中选项卡的小部件

QTabWidget怎么改变tab上小按钮的样式