Spyder不允许我使用PyQt5.15,有没有办法使用PyQt5.15函数?

2024-09-27 21:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用PyQt5编写GUI;它应该是一个有多个标签的主窗口。在隐藏/显示给定选项卡的代码部分中,我遇到以下错误:

AttributeError: 'QTabWidget' object has no attribute 'setTabVisible'

根据文档(以及几个月前我的代码运行时),QTabWidget应该有一个名为setTabVisible()的函数: https://doc.qt.io/qt-5/qtabwidget.html#setTabVisible

我在文档中看到这个函数是在Qt5.15中引入的

我正在使用Spyder 4.1.5,根据Spyder的“关于”窗口,我正在使用:

Python 3.8.5 64位| Qt 5.9.7 | PyQt5 5.9.2 | Windows 10

但是,当我使用pip freeze检查pyqt5qt的版本时,它是5.15.3

在检查了其他stackoverflow问题并在Anaconda中进行了实验后,我了解到Spyder 4.1.5要求我使用PyQt版本<;5.13,所以我猜Spyder有一些随机的PyQt旧版本,它取代了我的PyQt,所以它可以运行(如果我错了,请纠正我)

所以我的问题是: 我该怎么做才能使用这个函数(我几乎肯定有办法,因为去年夏天我的代码是用Spyder编译的,我不知道发生了什么变化)? 如果没有使用setTabVisible()隐藏/显示选项卡的方法,我该如何解决这个问题

以下为最小可复制示例:

import sys
from PyQt5.QtWidgets import QWidget, QTabWidget, QApplication

app = QApplication(sys.argv)

tabs = QTabWidget()

tabs.addTab(QWidget(),"tab1")
tabs.addTab(QWidget(),"tab2")

tabs.setTabText(1, "test")
tabs.setTabVisible(0, 0)
#print(tabs.isTabVisible(0))


tabs.show()

app.exec_()

QTabWidget.isTabVisible()与setTabVisible()存在相同的问题。我在上面的代码中将其注释掉,但如果我取消注释它,则会出现此错误:

AttributeError: 'QTabWidget' object has no attribute 'isTabVisible'

我将QTabWidget.setTabText()作为一个运行良好的函数示例。我的问题似乎只限于setTabVisible()和isTabVisible()

如果这只发生在我的电脑上,并且在你的电脑上运行良好,你能告诉我是什么导致了它,以及我如何修复它吗

如果它对你的也不起作用,你知道如何修复它,或者如果不知道,我如何解决它


Tags: 函数代码object错误pyqt5pyqt选项卡attributeerror

热门问题