Pyqt5:寻找一种在 QTabWidget 中关闭选项卡的方法

问题描述 投票:0回答:1

我现在正在使用 pyqt5 和 Qt 设计器来制作我的工作工具。

def figTabs(self):
    l1 = QLabel("F Title")
    b1 = QPlainTextEdit("a%d" % (self.Ftab.count() + 1))
    l2 = QLabel("F Caption")
    b2 = QPlainTextEdit("b%d" % (self.Ftab.count() + 1))
    vbox = QVBoxLayout()
    vbox.addWidget(l1)
    vbox.addWidget(b1)
    vbox.addWidget(l2)
    vbox.addWidget(b2)
    tab=QTabWidget()
    tab.setLayout(vbox)
    b1.setObjectName(f"fig_title_%d" % (self.Ftab.count() + 1))
    b2.setObjectName(f"fig_caption_%d" % (self.Ftab.count() + 1)) 
    self.Ftab.addTab(tab,  "Fig %d" % (self.Ftab.count() + 1))
    print(b1.objectName())
    print(b2.objectName()) 
    a = b1.toPlainText()
    print(a)
    #tabs=QTabWidget()
    #self.setTabsClosable(True)
    #tab.setTabsClosable(True)
    #tab.tabCloseRequested.connect(lambda index: tab.removeTab(index))

enter image description here

当我点击带有标签和框的连接按钮时,这个选项卡会创建一个新选项卡。

在 QTabwidget 中,在 Qt Designer 中选中选项 tabsClosable 所以当我制作一个时它会出现关闭按钮 然后我尝试关闭它但没有成功

选项卡需要通过我在代码中添加的布局进行添加和关闭(因为我在 Qt Designer 中使用布局函数时遇到问题),此外,即使我为它们设置了所需的名称,我也无法调用该对象调用它们并使用其中的文本(就像通常使用 toPlainText 一样)

python pyqt5 qt-designer
1个回答
0
投票

Нужно создать сигнал для закрытия вкладки

插槽

QtWidgets.QTabWidget.tabCloseRequested
class TabWidget (QtWidgets.QTabWidget):
    def __init__ (self):
        super(TabWidget, self).__init__()
        self.setTabsClosable(True)
        self.tabCloseRequested.connect(self.closeTab)
    def closeTab(self, currentIndex):
        self.removeTab(currentIndex)
© www.soinside.com 2019 - 2024. All rights reserved.