Python中的弃用警告,在这里有意义吗?

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

我正在为我的项目编写一个Python(使用3.8.2版本)应用程序。在应用程序中,我使用PySide2创建名为items_tableWidgetQTableWidget对象。这是我的代码片段,它创建QTableWidgetItem对象,并用我的数据填充它们,使它们不可被用户编辑并将其放入表中:

cell = QtWidgets.QTableWidgetItem()
cell.setData(Qt.DisplayRole, data)
cell.setFlags(cell.flags() & ~Qt.ItemIsEditable)
ui.items_tableWidget.setItem(row_number, column_number, cell)

运行代码时收到此警告:

C:\Users\Deronek\Documents\Qt\SkyblockBazaar\main.py:346: DeprecationWarning: an integer is required (got type PySide2.QtCore.Qt.ItemFlags).  Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
  cell.setFlags(cell.flags() & ~Qt.ItemIsEditable)

我是Python的新手,但我认为此警告没有意义,因为setFlags参数以及flags()返回值和ItemIsEditable枚举值都具有在Qt名称空间中定义了类型和运算符,因此我没有执行隐式转换。我是对的还是我错过了什么?

谢谢您的回答。

python pyside2 qtablewidgetitem
1个回答
0
投票

在Python 3.8中,存在the following change

int,float和complex的构造函数现在将使用__index __()特殊方法(如果有)和相应的方法__int __(),__float __()或__complex __()不可用。 (由Serhiy Storchaka在bpo-20092中贡献。)

© www.soinside.com 2019 - 2024. All rights reserved.