我正在从 PySide2 版本 5 升级到 PySide6,发行说明说它支持蛇形方法名称以及用属性替换 getter 和 setter 方法。这听起来像是一个很大的改进,但我不知道如何启用它。发行说明有一个代码示例,但它不可运行。当我尝试将其扩展为可运行的示例时,新版本不起作用。
这是仍然适用于 PySide6 的旧样式:
import sys
from PySide6.QtWidgets import (QTableWidget, QPushButton, QVBoxLayout,
QApplication, QWidget)
class MyWidget(QWidget):
def __init__(self):
super().__init__()
table = QTableWidget()
table.setColumnCount(2)
button = QPushButton("Add")
button.setEnabled(False)
layout = QVBoxLayout(self)
layout.addWidget(table)
layout.addWidget(button)
if __name__ == "__main__":
app = QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec_())
这是不起作用的新版本:
from __feature__ import snake_case, true_property
import sys
from PySide6.QtWidgets import (QTableWidget, QPushButton, QVBoxLayout,
QApplication, QWidget)
class MyWidget(QWidget):
def __init__(self):
super().__init__()
table = QTableWidget()
table.column_count = 2
button = QPushButton("Add")
button.enabled = False
layout = QVBoxLayout(self)
layout.add_widget(table)
layout.add_widget(button)
if __name__ == "__main__":
app = QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec_())
当我运行新版本时,我收到此错误:
Traceback (most recent call last):
File "/home/don/.config/JetBrains/PyCharm2021.1/scratches/scratch2.py", line 1, in <module>
from __feature__ import snake_case, true_property
ModuleNotFoundError: No module named '__feature__'
我并不感到惊讶,这到底是__feature__
从哪里来的?我尝试将其切换到__future__
,但这也不起作用。只是删除__feature__
线也不起作用。