Python 2.7 如何使QTabWidget可点击?

Python 2.7 如何使QTabWidget可点击?,python-2.7,pyqt4,qtabwidget,Python 2.7,Pyqt4,Qtabwidget,我搜索了这个主题,并找到了一些例子,如何使qwidget可点击,但只是打印像这样的文本 导入系统 from PyQt4.QtGui import QWidget, QApplication class MyWidget(QWidget): def mousePressEvent(self, event): print "clicked" app = QApplication(sys.argv) widget = MyWidget() widget.show() a

我搜索了这个主题,并找到了一些例子,如何使qwidget可点击,但只是打印像这样的文本 导入系统

from PyQt4.QtGui import QWidget, QApplication

class MyWidget(QWidget):
    def mousePressEvent(self, event):
        print "clicked"

app = QApplication(sys.argv)

widget = MyWidget()
widget.show()

app.exec_()

我需要的是使QTabWidget可点击,当点击它时,我们可以像按钮一样使用它打开文件。例如,您应该做的是创建一个信号并输出它,如下所示:

class ClickableQTabWidget(QTabWidget):
    clicked = pyqtSignal()
    def mousePressEvent(self, event):
        self.clicked.emit()

class Widget(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.setLayout(QVBoxLayout())
        self.cw = ClickableQTabWidget(self)
        self.layout().addWidget(self.cw)
        self.cw.clicked.connect(self.onClicked)

    def onClicked(self):
        print("clicked")

app = QApplication(sys.argv)

widget = Widget()
widget.show()

app.exec_()

我找到了一个解决方案,但我需要更多的测试才能得到我想要的:@seghier如果它对您有效,请将其标记为正确。是的,它与我找到的解决方案一样有效,只需两行代码:self.tabWidget.mousePressEvent=self.tabOpen1和def tabOpen1(self,event):self.folder_open.toggle();通过这种方式,当我点击tabwidget时,按钮切换并打开/关闭列表窗口。这是一种解决方案,特别是如果您只需要一个该类型的小部件,它就可以工作。在我的例子中,我建议使用该类,因为它有一个信号,表明您可以连接到多个插槽。如果我的回答对你有帮助,别忘了把它标为正确。@seghier另外,如果答案正确,通常会投反对票或把回答标为正确。我看你没有,这使我不愿意继续帮助你。我不明白这一点,因为我还没有尝试过这种方法;我需要先创建新文件,然后再试;这是一个承诺