我认为这里的困惑在于PyQt有一个称为的特殊虚拟模块
Qt,该模块将 所有内容
导入单个名称空间。这是一个非常有用的功能,但令人遗憾的
QtCore.Qt是,没有避免与该名称发生冲突。
在第一个示例中,可以通过使用看起来有些奇怪的外观来“修复”错误
Qt.Qt.AlignBottom。但是显然,显式导入
QtCore是一个更好的解决方案。还值得注意的是,该
PyQt5软件包是一个惰性加载器,因此
importPyQt5将仅导入一个空的名称空间,而不能访问其他模块。

我认为这里的困惑在于PyQt有一个称为的特殊虚拟模块
Qt,该模块将 所有内容
QtCore.Qt是,没有避免与该名称发生冲突。
在第一个示例中,可以通过使用看起来有些奇怪的外观来“修复”错误
Qt.Qt.AlignBottom。但是显然,显式导入
QtCore是一个更好的解决方案。还值得注意的是,该
PyQt5软件包是一个惰性加载器,因此
importPyQt5将仅导入一个空的名称空间,而不能访问其他模块。