【发布时间】:2022-01-10 15:08:04
【问题描述】:
当我升级到 PySide6 6.2.2 时,MyPy 开始抱怨 Qt.AlignmentFlag。这是一个小例子:
from PySide6.QtGui import Qt
from PySide6.QtWidgets import QLabel, QApplication
app = QApplication()
label = QLabel("Hello, World!")
label.setAlignment(Qt.AlignCenter)
label.show()
app.exec()
这仍然运行良好,但 MyPy 抱怨:
$ mypy foo.py
foo.py:6: error: Argument 1 to "setAlignment" of "QLabel" has incompatible type "AlignmentFlag"; expected "Alignment"
Found 1 error in 1 file (checked 1 source file)
$
好的,我尝试将AlignmentFlag 转换为Alignment。
from PySide6.QtGui import Qt
from PySide6.QtWidgets import QLabel, QApplication
app = QApplication()
label = QLabel("Hello, World!")
label.setAlignment(Qt.Alignment(Qt.AlignCenter))
label.show()
app.exec()
再次,运行良好,但 MyPy 现在抱怨构造函数。
$ mypy foo.py
foo.py:6: error: Too many arguments for "Alignment"
Found 1 error in 1 file (checked 1 source file)
$
谁能解释一下如何使用Qt.Alignment和Qt.AlignmentFlag?
【问题讨论】: