如何使 QTabWidget 可点击?

Posted

技术标签:

【中文标题】如何使 QTabWidget 可点击?【英文标题】:How to make QTabWidget clickable? 【发布时间】:2017-10-03 07:11:19 【问题描述】:

我搜索了这个主题并找到了一些示例如何使 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 可以点击,当点击它时,我们可以像按钮一样使用它来打开文件?

【问题讨论】:

我找到了解决方案,但我需要更多测试才能得到我想要的: 【参考方案1】:

你应该做的是创建一个信号并输出​​它,如下所示:

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 此外,在 SO 中,如果答案正确,通常会给予支持或将回复标记为正确。我看你没有,这让我不鼓励继续帮助你。 不理解,因为我还没有尝试游览方法;我需要先创建新文件并尝试;这是一个承诺

以上是关于如何使 QTabWidget 可点击?的主要内容,如果未能解决你的问题,请参考以下文章

当添加子选项卡时,如何使 qtabwidget 实例自动调整大小?

如何使 QTabWidget 看起来透明?

如何在 QTabWidget 上显示多光标?

如何确定一个点是不是在 QTabWidget 的 QTabBar 旁边?

如何从 Qt 上的 QTabWidget 获取 currentTabName?

框架的 QTabWidget 圆角(不是标签)