如何从Qt :: namesase(Qt5,Python3.x)导入?

SS_叛军

对于我的应用程序,我需要设置一些小部件参数,例如alignment(Qt::AlignBottom)和其他。但是我无法导入它们(其他PyQt5素材导入没有任何问题)。

使用此代码

from PyQt5 import Qt

progressBar = QProgressBar(splash)
progressBar.setAlignment(Qt.AlignBottom)

我收到以下错误:

Traceback (most recent call last):
  File "run_app.py", line 50, in <module>
    runSemApp(sys.argv)
  File "run_app.py", line 32, in runSemApp
    progressBar.setAlignment(Qt.AlignBottom)
AttributeError: 'module' object has no attribute 'AlignBottom'

并使用此作品:

from PyQt5.Qt import *

progressBar = QProgressBar(splash)
progressBar.setAlignment(Qt.AlignBottom)

尽管我有一个可行的解决方案,但我只想导入Qt.AlignBottom而不能*另外,为什么不Qt.AlignBottom一起工作from PyQt5 import Qt

ekhumoro

我认为这里的困惑在于PyQt有一个称为的特殊虚拟模块Qt,该模块将所有内容导入单个名称空间。这是一个非常有用的功能,但令人遗憾的QtCore.Qt是,没有避免与该名称发生冲突

在第一个示例中,可以通过使用看起来有些奇怪的外观来“修复”错误Qt.Qt.AlignBottom但是显然,显式导入QtCore是一个更好的解决方案。还值得注意的是,该PyQt5软件包是一个惰性加载器,因此import PyQt5将仅导入一个空的名称空间,而不能访问其他模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章