我正在为我的项目编写一个Python(使用3.8.2版本)应用程序。在应用程序中,我使用PySide2创建名为items_tableWidget的QTableWidget对象。这是我的代码片段,它创建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 3.8中,存在the following change:
int,float和complex的构造函数现在将使用__index __()特殊方法(如果有)和相应的方法__int __(),__float __()或__complex __()不可用。 (由Serhiy Storchaka在bpo-20092中贡献。)